我有一种情况,有两个领域字段1和字段2。我想要的一切
更改field1时,待办事项为空field2,反之亦然。所以最后才
一个字段上有内容
field1=(EditText)findViewById(R.id.field1);
field2=(EditText)findViewById(R.id.field2);
field1.addTextChangedListener(新的TextWatcher(){
公共无效后文本更改(可编辑的s){}
更改前的公共无效(字符序列、整数开始、,
整数计数,整数后){
}
public void onTextChanged(字符序列,int start,
前整数,整数计数){
字段2.setText(“”);
}
});
field2.addTextChangedListener(新的TextWatcher(){
公共无效后文本更改(可编辑的s){}
更改前的公共无效(字符序列、整数开始、,
整数计数,整数后){
}
public void onTextChanged(字符序列,int start,
前整数,整数计数){
字段1.setText(“”);
}
});
如果我只将addTextChangedListener附加到field1上,它可以正常工作,但是
我在应用程序崩溃的两个领域都这么做。显然是因为他们试图改变
彼此无限期地相互依赖。一旦field1发生更改,此时将清除field2
field2已更改,因此它将清除field1,依此类推
有人能提出解决办法吗
仅当字段中的文本不为空时(即长度不同于0时),才可以添加复选框以清除
field1.addTextChangedListener(新的TextWatcher(){
@凌驾
公共无效后文本更改(可编辑的s){}
@凌驾
更改前的公共无效(字符序列、整数开始、,
整数计数,整数后){
}
@凌驾
public void onTextChanged(字符序列,int start,
前整数,整数计数){
如果(s.长度()!=0)
字段2.setText(“”);
}
});
field2.addTextChangedListener(新的TextWatcher(){
@凌驾
公共无效后文本更改(可编辑的s){}
@凌驾
更改前的公共无效(字符序列、整数开始、,
整数计数,整数后){
}
@凌驾
public void onTextChanged(字符序列,int start,
前整数,整数计数){
如果(s.长度()!=0)
字段1.setText(“”);
}
});
TextWatcher的文档http://developer.android.com/reference/android/text/TextWatcher.html“rel=”noreferrer“>此处
也请尊重命名约定