在做项目时遇到一个事,一个界面有多个Editext,然后给多个Editext都设置监听后,在afterTextChanged中调用settext后导致了死循环,太奇葩了,以前没有遇到过,现在碰到了,怎么看都是个bug啊,马丹
解决办法:
那么简单的解决办法之前就是调用setText之前暂时去掉此监听器, 然后再恢复添加自身即可.
xxxEdit.addTextChangedListener(new TextWatcher() {
@Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
xxxEdit.removeTextChangedListener(this);
xxxEdit.setText("新取值");
xxxEdit.addTextChangedListener(this);
}
});