ViewHolder 复用机制导致的 TextWatcher 监听重复触发和数据错乱问题,解决方案很多,个人建议通过以下方案解决:
editText.setOnFocusChangeListener((v, hasFocus) -> {
if (hasFocus) {
editText.addTextChangedListener(textWatcher);
} else {
editText.removeTextChangedListener(textWatcher);
}
});