添加addTextChangedListener后执行一些操作

时间:2013-10-15 17:04:55

标签: android android-edittext

我有以下简单示例:

// 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);
        }
    }
});

问题是第一次执行afterTextChanged(ss.length()== 0)后按钮(b)被禁用。 但是,即使ss.length() > 2和行b.setEnabled(true)被执行(我可以在调试模式下看到它),按钮也会被禁用。

我不明白为什么会这样。

1 个答案:

答案 0 :(得分:0)

你的代码工作正常,你指的是ss而不是s(可编辑的)。 如果您在将ss更改为s后遇到问题,请告诉我。