在写项目的时候,我在RecycleView中的每个item嵌套了5个EditText,后来发现当输入数据,并且下滑的时候数据会显示错乱,以及没有太好的办法去获取每个Item中EditText输入的数据,后来想着只能够把输入的数据存储下来,完美解决下滑刷新数据错乱,以及保存数据,使用此方法,无论你的Recycle中有多少个EditText,都可以完美解决数据错乱的问题。
文章末尾附带代码网盘下载地址,有需要的可以下载跑一下看看。
先上效果图:
如效果图,我在第一个item中全部输入了1,下滑后再上滑数据并没有丢失与错乱,点击完成的时候获取到数据。
关于recycleView使用这里就不多说了,只附上关键代码,想要完整代码文章末尾有网盘下载链接。
首先我们需要在adpter新建bean类,并在adapter中新建list来保存EditText中的数据,代码如下:
public static List<Bean> editList = new ArrayList<>(); //存放EditText中的数据
public static class Bean {
private String mEtBoardNum;
private String mEtFunctionCode;
private String mEtRegisterStart;
private String mEtRegisterLength;
private String mEtKey;
public String getmEtBoardNum() {
return mEtBoardNum;
}
public String getmEtFunctionCode() {
return mEtFunctionCode;
}
public String getmEtRegisterStart() {
return mEtRegisterStart;
}
public String getmEtRegisterLength() {
return mEtRegisterLength;
}
public String getmEtKey() {
return mEtKey;
}
}
当我们item中有几个EditText,就写几个字符串。
加载adapter:
//设置RecycleView保持固定大小,可以优化RecycleView的性能
recycle.setHasFixedSize(true);
//取消刷新动画
RecyclerView.ItemAnimator animator = recycle.getItemAnimator();
if (animator instanceof SimpleItemAnimator) {
((SimpleItemAnimator) animato