0

I am trying to build an android app for my project in which if i input a certain number in TextView a new activity starts. I have tried using Intent function and using getText from editText. I dont really understand whats the issue here. I am new to android studio and also to programming, so i do not have much experience regarding it.

MainActivity

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;


public class  MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = findViewById(R.id.edt1);
        float message = Float.valueOf(editText.getText().toString());
        if (message == 123){
            Intent intent = new Intent(this, SecondAcivity.class);
            startActivity(intent);
        }



    }
    public void but1script(View view) { editText.setText(editText.getText()+"1");
    }
    public void but2script(View view){
        editText.setText(editText.getText()+"2");
    }
    public void but3script(View view){
        editText.setText(editText.getText()+"3");
    }
    public void but4script(View view){
        editText.setText(editText.getText()+"4");
    }
    public void but5script(View view){
        editText.setText(editText.getText()+"5");
    }
    public void but6script(View view){
        editText.setText(editText.getText()+"6");
    }
    public void but7script(View view){
        editText.setText(editText.getText()+"7");
    }
    public void but8script(View view){
        editText.setText(editText.getText()+"8");
    }
    public void but9script(View view) {
        editText.setText(editText.getText()+"9");}
    public void but0script(View view){
        editText.setText(editText.getText()+"0");
    }
    public void butaddscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            additionscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butsubscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            subtractionscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butmultscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            multiplyscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butdivscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            divisionscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butequalscript(View view){
        num2 = Float.parseFloat(editText.getText() + "");

        if (additionscript == true) {
            editText.setText(num1 + num2 + "");
            additionscript = false;
        }

        else if (subtractionscript == true) {
            editText.setText(num1 - num2 + "");
            subtractionscript = false;
        }

        else if (multiplyscript == true) {
            editText.setText(num1 * num2 + "");
            multiplyscript = false;
        }

        else if (divisionscript == true) {
            editText.setText(num1 / num2 + "");
            divisionscript = false;
        }
    }
    public void butclearscript(View view){
        editText.setText("");
    }
    public void butdecscript(View view){
        editText.setText(editText.getText()+".");
    }

    float num1;
    float num2;
    boolean additionscript;
    boolean subtractionscript;
    boolean divisionscript;
    boolean multiplyscript;
    EditText editText;

}

EDIT 1: I changed my code to this but now i am facing another problem. On input of certain number the new activity starts but on switching to landscape mode the app crashes and none of the operator buttons like +,-,=,*,/ buttons are working. The app is a basic calculator actually with a different layout in landscape mode and a certain number opens a new activity

package com.example.tanmaycalculator;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;


public class  MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = (EditText)findViewById(R.id.edt1);
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            @Override
            public void afterTextChanged(Editable s) {
                float message = Float.valueOf(editText.getText().toString());
                if (message == 123){
                    Intent intent = new Intent(MainActivity.this, EasterEgg.class);
                    startActivity(intent);

                }
            }
        });
        final Button but1 = (Button)findViewById(R.id.but1);
        
    }
    public void but1script(View view) { editText.setText(editText.getText()+"1");
    }
    public void but2script(View view){
        editText.setText(editText.getText()+"2");
    }
    public void but3script(View view){
        editText.setText(editText.getText()+"3");
    }
    public void but4script(View view){
        editText.setText(editText.getText()+"4");
    }
    public void but5script(View view){
        editText.setText(editText.getText()+"5");
    }
    public void but6script(View view){
        editText.setText(editText.getText()+"6");
    }
    public void but7script(View view){
        editText.setText(editText.getText()+"7");
    }
    public void but8script(View view){
        editText.setText(editText.getText()+"8");
    }
    public void but9script(View view) {
        editText.setText(editText.getText()+"9");}
    public void but0script(View view){
        editText.setText(editText.getText()+"0");
    }
    public void butaddscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            additionscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butsubscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            subtractionscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butmultscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            multiplyscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butdivscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            divisionscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butequalscript(View view){
        num2 = Float.parseFloat(editText.getText() + "");

        if (additionscript == true) {
            editText.setText(num1 + num2 + "");
            additionscript = false;
        }

        else if (subtractionscript == true) {
            editText.setText(num1 - num2 + "");
            subtractionscript = false;
        }

        else if (multiplyscript == true) {
            editText.setText(num1 * num2 + "");
            multiplyscript = false;
        }

        else if (divisionscript == true) {
            editText.setText(num1 / num2 + "");
            divisionscript = false;
        }
    }
    public void butclearscript(View view){
        editText.setText("");
    }
    public void butdecscript(View view){
        editText.setText(editText.getText()+".");
    }

    float num1;
    float num2;
    boolean additionscript;
    boolean subtractionscript;
    boolean divisionscript;
    boolean multiplyscript;
    EditText editText;

}

UPDATE: I have found the ay to make it work i was making a mistake to take input as float instead of string. changing that has solved my problem thank you for helping me.

import androidx.appcompat.app.AppCompatActivity;

import android.animation.ObjectAnimator;
import android.content.Intent;
import android.graphics.Path;
import android.os.Build;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.Button;
import android.widget.EditText;

import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;


public class  MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = (EditText)findViewById(R.id.edt1);
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            @Override
            public void afterTextChanged(Editable s) {
                String message = (editText.getText().toString());
                if (message.equals("123")){
                    Intent intent = new Intent(MainActivity.this, EasterEgg.class);
                    startActivity(intent);

                }
            }
        });
        
    }
    public void but1script(View view) { editText.setText(editText.getText()+"1"); }
    public void but2script(View view){
        editText.setText(editText.getText()+"2");
    }
    public void but3script(View view){
        editText.setText(editText.getText()+"3");
    }
    public void but4script(View view){
        editText.setText(editText.getText()+"4");
    }
    public void but5script(View view){
        editText.setText(editText.getText()+"5");
    }
    public void but6script(View view){
        editText.setText(editText.getText()+"6");
    }
    public void but7script(View view){
        editText.setText(editText.getText()+"7");
    }
    public void but8script(View view){
        editText.setText(editText.getText()+"8");
    }
    public void but9script(View view) { editText.setText(editText.getText()+"9");}
    public void but0script(View view){
        editText.setText(editText.getText()+"0");
    }
    public void butaddscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            additionscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butsubscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            subtractionscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butmultscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            multiplyscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butdivscript(View view){
        if (editText.getText() != null){
            num1 = Float.parseFloat(editText.getText() + "");
            editText.setText(null);
            divisionscript = true;
        }
        else{
            editText.setText("");
        }
    }
    public void butequalscript(View view){
        num2 = Float.parseFloat(editText.getText() + "");

        if (additionscript == true) {
            editText.setText(num1 + num2 + "");
            additionscript = false;
        }

        else if (subtractionscript == true) {
            editText.setText(num1 - num2 + "");
            subtractionscript = false;
        }

        else if (multiplyscript == true) {
            editText.setText(num1 * num2 + "");
            multiplyscript = false;
        }

        else if (divisionscript == true) {
            editText.setText(num1 / num2 + "");
            divisionscript = false;
        }
    }
    public void butclearscript(View view){
        editText.setText("");
    }
    public void butdecscript(View view){
        editText.setText(editText.getText()+".");
    }

    float num1;
    float num2;
    boolean additionscript;
    boolean subtractionscript;
    boolean divisionscript;
    boolean multiplyscript;
    EditText editText;
TanG
  • 5
  • 2
  • editText = findViewById(R.id.edt1); //final Button but1 = (Button)findViewById(R.id.but1); String s = editText.getText()+""; if (s == null){ float message = Float.valueOf(editText.getText().toString()); if (message == 123.00){ Intent intent = new Intent(this, EasterEgg.class); startActivity(intent); } } – TanG Nov 01 '20 at 17:51
  • the change i made – TanG Nov 01 '20 at 17:52

1 Answers1

0

You are currently only checking the value once the activity is created, at which point the EditText is empty.

You need to check the value each time the Text gets changed, so take a look at this and put your current code to start the activity into the afterTextChanged method

Merthan Erdem
  • 5,598
  • 2
  • 22
  • 29