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;