我尝试过null和空字符串,还有其他想法吗?
答案 0 :(得分:61)
没有其他可能性。
事实上, getText
永远不会返回null。它返回CharSequence
,其内容可能为空。
而不是getText().toString().equals("")
或反之亦然,getText().length() == 0
答案 1 :(得分:5)
如果它为空,这将起作用:
if(mEditText.getText().toString().equals("")) {
// stuff to run when it's empty
}
即使它是空的,getText()仍将返回Editable,所以如果你试图这样做:
if(mEditText.getText().equals("")) {
// stuff
}
肯定没有用。
答案 2 :(得分:5)
您可以使用TextUtils.isEmpty(mEditText.getText()。toString())。如果它为空/ null,它将返回true。
答案 3 :(得分:0)
我发现最好的检查方法是将值存储在类似var的变量中:
String text = mEditText.getText().toString();
,然后使用布尔运算符isEmpty
,例如:
if (text.isEmpty){
// stuff
}
答案 4 :(得分:0)
看了几个问题之后,从it's already possible to get a null开始,我找到了避免出现问题的答案
方法调用toString可能会产生NPE
到处警告:
String theText = String.valueOf(mEditText.getText());