Java 检查EditText是否带有“编辑文本”;inputType=number";是空的
我试图检查EditText中的输入是否为nullJava 检查EditText是否带有“编辑文本”;inputType=number";是空的,java,android,Java,Android,我试图检查EditText中的输入是否为null if(editTextSum.getText().toString() != null) { userStartingBalance = Integer.valueOf(editTextSum.getText().toString()); } else { userStartingBalance = 0; } 这里userStartingBalance是Integer类型 但每次我都会犯错误 无法将“转换为int,如果我不输入任何内容,
if(editTextSum.getText().toString() != null) {
userStartingBalance = Integer.valueOf(editTextSum.getText().toString());
} else {
userStartingBalance = 0;
}
这里userStartingBalance是Integer
类型
但每次我都会犯错误
无法将“
转换为int
,如果我不输入任何内容,则该行将指向“if case”
为什么它不会发生在其他情况下
解决方法是什么?试试:
Integer.parseInt(editTextSum.getText().toString())
试试:
Integer.parseInt(editTextSum.getText().toString())
您没有正确处理EditText中没有内容的情况
在这种情况下,editTextSum.getText().toString()
将不会返回null(事实上,它永远不应该为null)。相反,它将返回一个空字符串
相反,您可能希望尝试
editTextSum.getText().toString().isEmpty()
,。如果长度为0,则返回true。您没有正确处理EditText中没有内容的情况
在这种情况下,editTextSum.getText().toString()
将不会返回null(事实上,它永远不应该为null)。相反,它将返回一个空字符串
相反,您可能希望尝试
editTextSum.getText().toString().isEmpty()
,。如果长度为0,则将返回true。为什么不使用其他情况?
因为您正在对Null调用ToString()。如果该字段不存在值,则会将其设置为NULL,如果尝试运行toString()方法,则会收到此错误。在检索值之前执行空检查
解决方法
if( editTextSum.getText() != null )
{
userStartingBalance = Integer.parseInt(editTextSum.getText().toString());
}
else
{
userStartingBalance =0;
}
为什么它不属于其他情况? 因为您正在对Null调用ToString()。如果该字段不存在值,则会将其设置为NULL,如果尝试运行toString()方法,则会收到此错误。在检索值之前执行空检查 解决方法
if( editTextSum.getText() != null )
{
userStartingBalance = Integer.parseInt(editTextSum.getText().toString());
}
else
{
userStartingBalance =0;
}
正如您所指出的,
userStartingBalance
是int
。而Integer
是类型int
;然而valueof()
将int
作为参数,但是您有toString()
。因此,将字符串
传递给需要int
的参数。请参考一个问题,正如您所指出的,userStartingBalance
是int
。而Integer
是类型int
;然而valueof()
将int
作为参数,但是您有toString()
。因此,将字符串
传递给需要int
的参数。请参考