检查“inputType = number”的EditText是否为空
问题描述:
我试图检查EditText中的输入是否为null。检查“inputType = number”的EditText是否为空
if(editTextSum.getText().toString() != null) {
userStartingBalance = Integer.valueOf(editTextSum.getText().toString());
} else {
userStartingBalance = 0;
}
这里userStartingBalance是Integer
类型。
但我得到一个错误,每次说
无法转换成" "
int
,而该行指出,“如果情况”如果我不输入任何内容。
为什么不去其他案件?
解决方法是什么?
答
您没有正确地处理在您的EditText只是中没有任何内容的情况下。
在这种情况下,editTextSum.getText().toString()
将不会返回null(实际上,它不应该为null)。相反,它会返回一个空字符串。
相反,您可能想尝试editTextSum.getText().toString().isEmpty()
来代替。如果长度为0,则isEmpty()
将返回真。
答
尝试:
Integer.parseInt(editTextSum.getText().toString())
答
为什么它不会出现其他情况?
因为您在Null上调用ToString()。如果该字段没有值,那么它将设置NULL,如果你尝试运行toString()方法,你会收到这个错误。在检索值之前进行Null检查。
解决方法
if(editTextSum.getText() != null)
{
userStartingBalance = Integer.parseInt(editTextSum.getText().toString());
}
else
{
userStartingBalance =0;
}
一个问题是,'userStartingBalance'是'int',正如你指出。 'Integer'类型为'int';然而'valueof()'接受'int'作为参数,但是你有'toString()'。所以*你传递一个'string'到一个需要'int'的参数。*请参考https://developer.android.com/reference/java/lang/Integer.html – NonCreature0714