andorid 在列表Adapter中edittext使用TextWatcher导致数据错乱问题
这里使用的是RecyclerView使用BaseQuickAdapter
EditText et_money=helper.getView(R.id.et_money);
if (et_money.getTag() instanceof TextWatcher){
et_money.removeTextChangedListener((TextWatcher) et_money.getTag());
}
et_money.setText(item.getMoney()+"");
TextWatcher moneyTextWatcher=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) {
if (!TextUtils.isEmpty(s.toString())){
item.setMoney(s.toString());
}
}
};
et_money.addTextChangedListener(moneyTextWatcher);
et_money.setTag(moneyTextWatcher);
注意:editText赋值一定要在TextWatcher之前