2013-11-03 31 views
0

我的代碼:。機器人的getText()的toString()等於( 「0」)不工作

if (edittext1.getText().toString().equals("0")) 
    edittext1.setFilters(new InputFilter[] {new InputFilter.LengthFilter(1)}); 

在.xml文件中我設置android:inputType="numberDecimal"我想,如果用戶在edittext1的開頭寫道: 「0」,比他不能再寫什麼。

它不工作,如何解決它?

+0

你肯定edittext1.getText()不返回null? – Aubin

+0

@Aubin如果是,那麼OP會得到一個NPE。羅斯,「不起作用」是什麼意思? – Simon

+0

您是否嘗試在if塊內記錄消息?也許你在if語句中的表達是正確的,但setFilters不會觸發。也許。只是一個想法。 – Swayam

回答

0

確保你做這個檢查每次輸入發生了變化,不僅一次:

edittext1.addTextChangedListener(new TextWatcher(){ 
     public void afterTextChanged(Editable s) { 
       if (edittext1.getText().toString().equals("0")){ 
        edittext1.setFilters(new InputFilter[] {new InputFilter.LengthFilter(1)}); 
       }else{ 
        edittext1.setFilters(new InputFilter[0]); // remove filter 
       } 
     } 
     public void beforeTextChanged(CharSequence s, int start, int count, int after){} 
     public void onTextChanged(CharSequence s, int start, int before, int count){} 
    }); 
+0

也許我做錯了什麼,但它不起作用。 – ross

+0

我修正了上面的代碼,請嘗試一下。我在模擬器中嘗試過它,它工作得很好。 – user2436850