检查“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,而该行指出,“如果情况”如果我不输入任何内容。

为什么不去其他案件?

解决方法是什么?

+0

一个问题是,'userStartingBalance'是'int',正如你指出。 'Integer'类型为'int';然而'valueof()'接受'int'作为参数,但是你有'toString()'。所以*你传递一个'string'到一个需要'int'的参数。*请参考https://developer.android.com/reference/java/lang/Integer.html – NonCreature0714

您没有正确地处理在您的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; 
}