У меня ситуация, когда есть два поля. field1
и field2
. Все что я хочу
do - пустой field2
при изменении field1
и наоборот. Так что в конце только
в одном поле есть содержимое.
field1 = (EditText)findViewById(R.id.field1);
field2 = (EditText)findViewById(R.id.field2);
field1.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
field2.setText("");
}
});
field2.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
field1.setText("");
}
});
Работает нормально, если я присоединяю addTextChangedListener
только к field1
, но когда
Я делаю это для обоих полей приложение вылетает. Очевидно, потому что они пытаются изменить
друг друга до бесконечности. Как только field1
изменяется, он очищает field2
в этот момент
field2
изменен, поэтому он очистит field1
и так далее...
Может кто-нибудь предложить какое-нибудь решение?