写在前面:
今天在Recyclerview中使用Switch控件时,遇到了一个以前没有遇过的问题——控件被复用,我点击了一个开关,发现滑动之后的其他行数的switch控件莫名被打开了,网上找了很多方法尝试了都没效果,于是修改了一个下午才解决了这个问题,以此记录下来,谨防二次踩坑!
解决思路:
创建一个list<boolean> isCheck ,对应的每一条数据默认初始化为false;
初始化:
注:适配器使用的是继承BaseQuickAdapter,implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.31'
private List<Boolean> isCheck;
public void setList(List<SocketBean> list) {
isCheck = new ArrayList<>();
if (list.size() != 0) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).isRun) {
isCheck.add(true);
} else {
isCheck.add(false);
}
}
}
setNewData(list);
}