getText()为空的EditText返回什么?

时间:2018-01-29 13:57:35

标签: java android

我正在尝试检查EditText是否为空。为此,我尝试了这个:

  String text = gateNumberEditText.getText().toString();
  if (text.equals("")){
      \\do something
  } else {
       \\do something else
  }

还试过:text == null,text =="" ,text.equals(null)

似乎没有任何作用,它总是传递给其他人。这是为什么?

** isEmpty()解决了我的问题。 但如果有人解释我为什么一开始没有工作,我会很高兴吗?

3 个答案:

答案 0 :(得分:0)

请试试这个:

String text = gateNumberEditText.getText().toString().trim();
if (text==null || text.equals("")) {
   // do something
}
else {
   // do something else
}

答案 1 :(得分:0)

我之前评论的摘要:

String text = gateNumberEditText.getText().toString();
  if (text.equals("")){

                \\do something
            }else {
                \\do something else
            }

如果您有null,则此代码会在NullPointerException方法调用上抛出toString()

看到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
            }

答案 2 :(得分:-1)

您应该使用TextUtilsisEmpty方法,该方法返回一个boolen值,以检查编辑文本是否为空。

if(!TextUtils.isEmpty(editText.getText().toString())) {
// Do something
} else{
 //Do something else
}