应用按钮崩溃,单击“空iDittext”



我正在研究一个数学问题的应用程序。我在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!");
    }
}

为了避免使用parseint((避免使用numberFormateXception((,请确保更早(不在onClick((中(输入一个值。

这里有很多问题,但是标题是您以错误的顺序做事。您应该在OnClick内部进行所有检查,否则该应用可能会抛出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);
            }
        }
    });
}

最新更新