Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 应用程序在使用空编辑文本单击按钮时崩溃_Android_Button_Crash - Fatal编程技术网

Android 应用程序在使用空编辑文本单击按钮时崩溃

Android 应用程序在使用空编辑文本单击按钮时崩溃,android,button,crash,Android,Button,Crash,我正在做一个有一些数学问题的应用程序。 我在photoshop中制作了一张照片,照片下面有一个编辑文本和按钮。 一切正常,但当我在editText为空时单击按钮时,应用程序崩溃。 我尝试了其他问题的例子,但它们对我没有帮助 public class Start1Activity extends AppCompatActivity { Button btn; public void displayResult(String result) { Toast.makeText(Start1

我正在做一个有一些数学问题的应用程序。 我在photoshop中制作了一张照片,照片下面有一个编辑文本和按钮。 一切正常,但当我在editText为空时单击按钮时,应用程序崩溃。 我尝试了其他问题的例子,但它们对我没有帮助

public class Start1Activity extends AppCompatActivity {

Button btn;

public void displayResult(String result) {
    Toast.makeText(Start1Activity.this, result, Toast.LENGTH_SHORT).show();
}

public void guess(View view){
    final EditText EditText2 = (EditText) findViewById(R.id.editText2);

    final int guessNumber = Integer.parseInt(EditText2.getText().toString());

    if (guessNumber == 3 ){
        displayResult("That's right! Click once again for next level");
        btn = (Button) findViewById(R.id.bt3);
        btn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view){
                if(EditText2.getText().toString().isEmpty()){
                    displayResult("Please enter some number");
                }
                Intent anythingintent=new Intent(Start1Activity.this,Start2Activity.class);
                startActivity(anythingintent);
            }
        });
    }
    else{
        displayResult("Wrong. Try again!");

    }
}

这里有相当多的事情出错了,但标题是你按错误的顺序做事。您应该在onClick中完成对EditText的所有检查,否则应用程序可能会抛出NullPointerException。下面的代码应该适合您

public void guess(View view){
    final EditText editTextField = (EditText) findViewById(R.id.editTextField);
    btn = (Button) findViewById(R.id.bt3);

    final int guessNumber = Integer.parseInt(editTextField.getText().toString());

    btn.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view){
            if(editTextField.getText().toString().isEmpty()) {
                displayResult("Please enter a number");
            }
            else if (!(guessNumber == 3)) {
                displayResult("Wrong. Try again!");
            }
            else {
                displayResult("That's right! Click once again for next level");
                Intent anythingintent=new Intent(Start1Activity.this,Start2Activity.class);
                startActivity(anythingintent);
            }
        }
    });
}

为了避免parseInt出现NumberFormatException,请确保前面没有在onClick中输入值。

很高兴为您编码!您应该在onCreate方法而不是onClick上实例化视图