我有一个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事件)
答案 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