2013-10-15 45 views
0

後我有簡單的下面的例子:做一些動作addTextChangedListener加入

// on UI EditText and Button esists 
EditText et = (EditText) findViewById(id); 
Button b = (Button) findViewById(id); 

et.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 
    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) {} 
    @Override 
    public void afterTextChanged(Editable s) { 
     // here simple logic 
     if (ss.length() > 2) { 
      b.setEnabled(true); 
     } else { 
      b.setEnabled(false); 
     } 
    } 
}); 

的問題是,(B)鈕afterTextChanged(ss.length()== 0)的第一次執行之後被禁用。 但是,即使執行ss.length() > 2和行b.setEnabled(true)(我可以在調試模式下看到它)按鈕保持禁用狀態。

我不明白爲什麼會發生。

+0

可編輯參數是's'還是'ss'? –

+0

其實代碼對我來說工作正常。可編輯是不是ss – vgarzom

+0

哦,我的錯誤(只是在這裏輸入一個例子)。當然它必須是''而且是在我真正的項目中......所以問題仍然存在 – vetalitet

回答

0

您的代碼正常工作,您指的是ss而不是s(可編輯s)。 如果您在將ss更改爲s後遇到問題,請讓我知道。