Java 对于空的EditText,getText()返回什么?

Java 对于空的EditText,getText()返回什么?,java,android,Java,Android,我正在尝试检查EditText是否为空。为此,我尝试了以下方法: String text = gateNumberEditText.getText().toString(); if (text.equals("")){ \\do something } else { \\do something else } 还尝试了:text==null,text==“”,text.equals(null) 似乎什么都不管用,总是传给别人。为什么呢 **我完全解决了

我正在尝试检查EditText是否为空。为此,我尝试了以下方法:

  String text = gateNumberEditText.getText().toString();
  if (text.equals("")){
      \\do something
  } else {
       \\do something else
  }
还尝试了:text==null,text==“”,text.equals(null)

似乎什么都不管用,总是传给别人。为什么呢

**我完全解决了我的问题。 但如果有人能解释一下为什么它一开始不起作用,我会很高兴的。

请尝试以下方法:

String text = gateNumberEditText.getText().toString().trim();
if (text==null || text.equals("")) {
   // do something
}
else {
   // do something else
}
您应该使用类的方法(返回boolen值)来检查编辑文本是否为空

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

我先前评论的摘要:

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
            }

你试过打印值吗?你试过用.trim()吗?记住,“”和“”不一样。你应该使用equals,而不是其他的。无论哪种方式,您都不会得到null,否则toString()将抛出一个NPE。为什么还要对字符串调用toString()?GateNumberEditText.getText==null。选中此项。@Rektirino不,不能为空。请尝试使用:text.trim().isEmpty()@Stultuske我试着打印它,它什么也没显示(比如-“”)。我尝试过修剪它,但它不起作用,我必须执行toString(),因为它是一个TextView,而getText()提供了一个EditableString类中有一个非常好的isEmpty()方法。如果它为null,您将拥有一个NPE,并且您正在对字符串调用toString..getText返回可编辑的接口,该接口不是字符串。。。。另外,如果您检查EditText的源代码,您会发现getText方法从不返回null,那么它返回什么而不是null呢?我在没有成功的情况下检查了源代码一个空字符串,在构造函数中,你可以看到mText或类似的东西(不记得确切的属性名称)是用“”对字符串调用toString()初始化的。你明白为什么空检查是多余的吗?如果有任何可能使文本为空的方式,则在执行空检查之前会引发异常谢谢!!isEmpty()完成了这项工作,但我必须说,您必须将toString()放入,因为getText()方法返回一个可编辑的obj@talitshakian我的错误。我查看了代码,但没有在谷歌上搜索该类型的api。在大多数情况下,'getText()'返回字符串。