检查带有“inputType = number”的EditText是否为空

时间:2016-06-21 16:15:20

标签: java android

我正在尝试检查EditText中的输入是否为null。

if(editTextSum.getText().toString() != null) {
  userStartingBalance = Integer.valueOf(editTextSum.getText().toString());
} else {
  userStartingBalance = 0;
}

此处userStartingBalance是Integer类型。

但我每次都会收到错误

无法将" "转换为int,如果我没有输入任何内容,则该行会指向'if case'。

为什么不去其他情况?

解决方法应该是什么?

3 个答案:

答案 0 :(得分:2)

您没有正确处理EditText中没有内容的情况。

在这种情况下,editTextSum.getText().toString()不会返回null(事实上,它永远不应该为null)。相反,它将返回一个空字符串。

相反,您可能希望尝试使用editTextSum.getText().toString().isEmpty()。如果长度为0,isEmpty()将返回true。

答案 1 :(得分:1)

尝试:

Integer.parseInt(editTextSum.getText().toString())

答案 2 :(得分:0)

为什么不会出现其他情况?

因为你在Null上调用ToString()。如果该字段没有值,那么它将为它设置NULL,如果您尝试运行toString()方法,您将收到此错误。在检索值之前执行Null检查。

解决方法

if( editTextSum.getText() != null )
{
    userStartingBalance = Integer.parseInt(editTextSum.getText().toString());
}
else
{
    userStartingBalance =0;
}