我有以下简单的示例:
// 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)
(我可以在调试模式下看到它)按钮也保持禁用状态。
我不明白为什么会这样。