空白字段,java导致应用程序崩溃

时间:2016-02-24 12:43:35

标签: java android android-studio crash

当字段留空时,会导致应用崩溃。我怎么能阻止它?

EditText editText = (EditText)findViewById(R.id.editText);
userNumber = Integer.parseInt(editText.getText().toString());

我尝试给它一个.setError("不要留空!"),但它似乎没有做到这一点,应用程序崩溃了。

截图:
     screen-shot error-message

3 个答案:

答案 0 :(得分:2)

空或空字符串尝试parseInt会引发FormatException。所以,要么将代码包装在try / catch:

try {
  userNumber = Integer.parseInt(editText.getText().toString());
}catch(Exception e){
    // friendly error to the user: field is incorrect
}

或使用if语句确保editText不为空:

if(editText.getText().length() > 0){
     // your code
}

if解决方案假设您的editText只接受数字(使用xml布局中的属性android:inputType="number")。

作为旁注,对于良好实践,请注意将parseInt包装在try / catch中总是明智的。

答案 1 :(得分:1)

这段代码可以给你一个想法,

String input = editText.getText().toString();
if(input.length() > 0){
    try {
        int userNumber = Integer.parseInt(input);

        // Write your code here

    } catch (Exception e) {
        Toast.makeText(this, "Enter only a number!", Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }
} else{
    Toast.makeText(this, "Enter a number!", Toast.LENGTH_SHORT).show();
}

答案 2 :(得分:1)

   Use this it will help you and remove your crash    


EditText editText = (EditText)findViewById(R.id.editText);

if(userNumber.length() > 0)
{
set your error screen is empty
}
else
{
userNumber = Integer.parseInt(editText.getText().toString());
}