我正在尝试检查EditText中的输入是否为null。
if(editTextSum.getText().toString() != null) {
userStartingBalance = Integer.valueOf(editTextSum.getText().toString());
} else {
userStartingBalance = 0;
}
此处userStartingBalance是Integer
类型。
但我每次都会收到错误
无法将" "
转换为int
,如果我没有输入任何内容,则该行会指向'if case'。
为什么不去其他情况?
解决方法应该是什么?
答案 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;
}