我正在尝试检查 EditText 是否为空。为此,我尝试了以下方法:
String text = gateNumberEditText.getText().toString();
if (text.equals("")){
\\do something
} else {
\\do something else
}
还尝试过:text == null、text == ""、text.equals(null)
似乎什么都不起作用,它总是传递给其他人。这是为什么?
**isEmpty() 解决了我的问题。 但如果有人向我解释为什么它一开始不起作用,我会很高兴?
最佳答案
我之前的评论摘要:
String text = gateNumberEditText.getText().toString();
if (text.equals("")){
\\do something
}else {
\\do something else
}
如果您有一个 null
,此代码将在 toString()
方法调用上引发 NullPointerException
。
由于 getText()
返回一个 String
,因此没有理由调用 toString()
当您想要比较 String
对象的值时,请始终使用 equals(IgnoreCase)()
方法。
此外,请记住,""
(空格)和 ""
不是两个相同的值,因此比较它们确实会返回 false
。
将您的代码更改为:
String text = gateNumberEditText.getText().trim();
// the trim() method will remove all leading and trailing spaces
if (text.isEmpty()){ // this method of the String class, will check the length of the String.
// after the trim(), for an empty String (or only spaces), that would be zero
\\do something
}else {
\\do something else
}
关于java - 对于空的 EditText,getText() 返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48502973/