Nó được làm phiền tôi rằng thực hiện một người biết lắng nghe cho tất cả các lĩnh vực EditText của tôi đòi hỏi tôi phải có xấu xí, mã verbose vì vậy tôi đã viết lớp bên dưới. Có thể hữu ích cho bất cứ ai ngại về điều này.
public abstract class TextChangedListener<T> implements TextWatcher {
private T target;
public TextChangedListener(T target) {
this.target = target;
}
@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) {
this.onTextChanged(target, s);
}
public abstract void onTextChanged(T target, Editable s);
}
Bây giờ, việc triển khai trình nghe sẽ sạch hơn một chút.
editText.addTextChangedListener(new TextChangedListener<EditText>(editText) {
@Override
public void onTextChanged(EditText target, Editable s) {
//Do stuff
}
});
Đối với nó cháy mức độ thường xuyên, một có lẽ có thể thực hiện một kiểm tra để chạy mã của họ mong muốn trong //Do stuff
sau một cho một thử
để thêm người nghe tập trung, khi EditText mất tập trung , điều đó có nghĩa là người dùng đã bắt đầu chỉnh sửa nó và khi editText mất tiêu điểm, điều đó có nghĩa là việc chỉnh sửa hoàn tất – Houcine
https://github.com/henrychuangtw/AutoInsertEditText – HenryChuang