我有一个情况,有两个字段。field1
和field2
。我想做的就是当field1
被更改时清空field2
,反之亦然。因此最终只有一个字段有内容。
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
,以此类推......
有人能提出任何解决方案吗?