在getView()方法中
//判断是否有TextWatcher监听事件,有的话先移除
if (baseViewHolder.getView(R.id.et_words).getTag(R.id.tv_id) instanceof TextWatcher){
((EditText) baseViewHolder.getView(R.id.et_words)).removeTextChangedListener(((TextWatcher) baseViewHolder.getView(R.id.et_words).getTag(R.id.tv_id)));
}
//用一个空的textview存储我们列表中的唯一id,位置无论在哪,反正不显示
((TextView) baseViewHolder.getView(R.id.tv_id)).setVisibility(View.GONE);
//监听
TextWatcher textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
// todo 获取到edit改变前的数字
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
// todo 获取到edit改后的数字
model.word = editText.getText().toString();
}
};
//设置tag为TextWatcher
((EditText) baseViewHolder.getView(R.id.et_words)).addTextChangedListener(textWatcher);
//绑定到空的textview
baseViewHolder.getView(R.id.et_words).setTag(R.id.tv_id,textWatcher);