2010-05-07 78 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

相關問題