如何在TextWatcher方法上下文中获取视图?

时间:2014-04-04 14:51:09

标签: android events android-edittext listener textwatcher

我有一个TextWatcher的处理程序,我不知道如何获取已更改文本的View

这是我的经纪人:

TextWatcher handler = new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        oldText = s.toString();
    }

    @Override
    public void afterTextChanged(Editable s) {
        //v.setText("afterTextChanged");
    }
};

请注意注释部分,即我想要的,从触发事件的View获取EditText,以便在文本更改后更改文本。

我如何在 afterTextChanged 事件中找到此.setText()方法? (例如视图为v的onClick事件)

2 个答案:

答案 0 :(得分:22)

public static class MyTextWatcher implements TextWatcher {

    private EditText mEditText;

    public MyTextWatcher(EditText editText) {
        mEditText = editText;
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        oldText = mEditText.toString();
    }
    ....
}

添加:

    mFirstEditText.addTextChangedListener(new MyTextWatcher(mFirstEditText));

答案 1 :(得分:0)

@Ion Aalbers 答案的 kotlin 版本

abstract class TextWatcherWithView(val view: TextInputEditText) : TextWatcher