0

我有以下简单的示例:

// 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)(我可以在调试模式下看到它)按钮也保持禁用状态。

我不明白为什么会这样。

4

1 回答 1

0

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

于 2013-10-15T17:37:45.947 回答