У меня есть ситуация, когда есть два поля. field1и field2. Все, что я хочу сделать, это пусто, 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и так далее ...
Может кто-нибудь предложить какое-нибудь решение?
starting waiting blocking gc allocтакому типу ошибок, которые могут даже привести к сбою и зависанию ... так что идите на связывание данных, это безопасно и рекомендовано Google сейчас ..