2010-05-07 73 views

回答

62

没有其他的可能性。

getText,事实上,将永远不会返回null。它返回CharSequence其内容可能为空。

而不是做getText().toString().equals("")或反之亦然,这可能会更快做getText().length() == 0

+3

CharSequence是实现接口的某个类的对象引用。没有什么能阻止API实现者从getText返回null,在这种情况下,getText().length将导致NPE。 – 2013-01-12 19:02:09

+1

那么,由getText返回的CharSequence实例永远不会为null。因此我的观察。 – 2013-02-16 14:14:16

+0

这不适合我。我在Activity中有大约20个TextViews。在第一步中,我为其中的一些设定了一些值,保持其他值不变。当我遍历所有这些元素时,如果getText().length()== 0'将其文本设置为'0',除''之外的所有元素都被'0'覆盖(并且保证有多于一个,我没有用'0'覆盖测试它)。同样的事情通过测试'... toString()。equals(“”)'。什么会造成这种情况? – 2013-04-19 15:12:17

4

如果它是空的,这将工作:

if(mEditText.getText().toString().equals("")) { 
    // stuff to run when it's empty 
} 

即使它是空的,gettext的()仍然会返回一个可编辑的,所以如果你想这样做:

if(mEditText.getText().equals("")) { 
    // stuff 
} 

它肯定没有工作。

6

您可以使用TextUtils.isEmpty(mEditText.getText()。toString())。如果它为空/空,它将返回true。

+1

如果它返回null,那么你会得到一个'NullPointerException'来做你所说的。无论如何,就像@MasterGaurav提到的,似乎默认的EditText永远不会返回null; – 2014-08-14 15:15:40

相关问题