思路:首先需要一个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;
/**
*数据源
*/
private final List<String> list;
public MyAdapter() {
map = new HashMap<>();
list = new ArrayList<>();
for (int i = 0; i < 30; i++) {
list.add("这是条目" + i);
//Checkbox初始状态置为false
map.put(i, false);
}
}
/**