思路:
首先需要一个Map集合用于存储每一个条目的选中状态。选中哪个条目,则把该条目的位置添加进集合,并设置key为true,删除则设置Map集合中对应的位置的key为false。最后提交的时候,遍历map集合,即可得到所有选中的条目。全选是把Map集合中的key全部设置为true即可,而反选则需要遍历Map集合,判断每个key的状态并设置为相反的状态。
先上适配器的代码
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
/**
* checkbox的Hashmap集合,一条数据对应一个checkbox状态
*/
private final HashMap<Integer, Boolean> map;
/**
*数据源
这是我的代码 一个list集合 一个上下文对象 一个map集合
private final HashMap<Integer, Boolean> map;
/**
*数据源
这是我的代码 一个list集合 一个上下文对象 一个map集合
map集合里面的参数 一个是 每一条条目对应的索引,boolean 是被选中的状态
*/
private List<SaoHe> saoHes; Context con; private onClickLiostener listener; private HashMap<Integer,Boolean> map; public CJAdapter(List<SaoHe> saoHes, Context con,HashMap<Integer,Boolean> map) { this.saoHes = saoHes; this.con = con; this.map=map; }