每做完一个项目,就会抽时间来总结下遇到的问题,今天就写下EditText在RecyclerView中遇到的问题,也不知道这样解决是不是好办法。
1.EditText在RecyclerView会遇到什么问题呢,首先是RecyclerView复用问题,应用RecyclerView有复用机制,会导致RecyclerView中的EditText出现错乱,甚至值会发生变化。我的解决方式是每一个EditText设置一个tag,然后再输入完成的时候取出tag,具体代码就是
在Holder设置值之前设置
mTvName.setTag(position);
mTvName.addTextChangedListener(new myTextWatcher(mEdDeviceFt, 1, position)); //1代办第列,因为项目里RecyclerView一行有多个EditText,position代表第几列 myTextWatcher 是个内部类
class myTextWatcher implements TextWatcher { private EditText view; private int index; private int position; public myTextWatcher(EditText view, int index, int position) { this.view = view; this.index = index; this.position = position; } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { }