Java 检查EditText是否带有“编辑文本”;inputType=number";是空的

Java 检查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,如果我不输入任何内容,

我试图检查EditText中的输入是否为null

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
的参数。请参考