RecyclerView+EditText如何解决输入的数据错乱

2018-04-25  本文已影响337人  能有几次抉择


图片来自网络

前言:

相信大家在做列表嵌套了输入框的需求时,都会出现输入框在输入数据后,列表上下滑动,让有内容的输入框滑出视线,在滑动回视线内,这时候你看着刚刚输入框的内容,会不会惊呼一声“amazing”?没错,你没看错,输入框内容不是你输入的,且多滑动几次也不一样的内容!不要着急,以下是我一贯处理这个问题的一些解决办法,大家可以参考!

大家的正常写法应该都是这样的吧

holder. mEditText. setText("测试内容");

改进如下:

holder. mEditText. setText("测试内容");

//1.将position与view进行绑定

holder.mEditText.setTag(position);

//2.设置View的输入监听

holder.mEditText.addTextChangedListener(new MyTextWatcher());

重要方法在监听类

class MyTextWatcher implements TextWatcher{

//总共是3个方法,手机打字,就不写了。看具体逻辑

private Holder mHolder;//可通过构造传进来

public void afterTextChanged(Editable s){

int position = mHolder.mEditText.getTag();

//这里就是具体赋值,每次输入的时候,都会取出当前输入的position,然后对数据集进行实时赋值,当列表滑动出现复用时,由于数据集已经实时记录了输入的值,调用onBindView重新刷新列表时,就不会出现内容错乱了。

mListData.get(position).setCount(Integer.parseInt(s.toString()));

}

}

以上是我个人处理的一个方式,大家有更好的处理方式欢迎分享!个人记录,不保证大家都能有效果,具体看自己需求!

最后,谢谢大家!

上一篇下一篇

猜你喜欢

热点阅读