Làm thế nào tôi có thể tránh điều đó một dòng mã như:Làm thế nào tôi có thể tránh thực hiện OnTextChanged trong Android của EditText
((EditText) findViewById(R.id.MyEditText)).setText("Hello");
sẽ gây ra một sự kiện ở đây:
((EditText) findViewById(R.id.MyEditText)).addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
// HERE
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
Tôi muốn biết nếu có bất kỳ cách nào để ngăn chặn việc thực hiện onTextChanged như tôi nhận thấy trong trường hợp chọn kết quả xổ xuống của AutoCompleteTextView (không có onTextChanged được thực hiện!).
Tôi không tìm kiếm cách giải quyết như "nếu chào không làm gì cả" ...
Đặt văn bản sẽ kích hoạt trình nghe đó. Một cách đơn giản là có một tham chiếu đến 'TextWatcher', loại bỏ trình lắng nghe trước khi thiết lập văn bản (với' removeTextChangedListener (watcher) '), thiết lập văn bản, bật lại trình nghe (với' addTextChangedListener (watcher) '). Bạn có thể có điều này trong một phương pháp để thuận tiện nếu bạn làm điều đó nhiều hơn một vài lần. – Luksprog
bản sao có thể có của [Android: Làm thế nào tôi có thể thay đổi văn bản EditText mà không kích hoạt Trình xem văn bản mà tôi có trên đó?] (Http://stackoverflow.com/questions/9385081/android-how-can-i-change-the- edittext-text-without-triggering-the-text-watcher) – danpetruk
Ví dụ về cùng một câu hỏi được giải quyết để cập nhật trên hộp kiểm với người nghe http://stackoverflow.com/a/15523518/2162226 – gnB