实现购物车的全选、反选功能
private HashMap<Integer, Boolean> isCheckedHasMap;
isCheckedHasMap = new HashMap<>();
for (int i = 0; i < mData.size(); i++) {
isCheckedHasMap.put(i, false);
}
- CheckBox点击事件 添加在onBindViewHolder里面(cb是CheckBox的ID)
holder.cb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
isCheckedHasMap.put(position, !isCheckedHasMap.get(position))
notifyDataSetChanged()
}
})
holder.cb.setChecked(isCheckedHasMap.get(position))
public void selectedAll() {
Set<Map.Entry<Integer, Boolean>> entries = isCheckedHasMap.entrySet();
boolean shouldSelectedAll = false;
for (Map.Entry<Integer, Boolean> entryset : entries) {
Boolean aBoolean = entryset.getValue();
if (!aBoolean) {
shouldSelectedAll = true;
break;
}
}
for (Map.Entry<Integer, Boolean> entryset : entries) {
entryset.setValue(shouldSelectedAll);
}
notifyDataSetChanged();
}
public void revertSelected() {
Set<Map.Entry<Integer, Boolean>> entries = isCheckedHasMap.entrySet();
for (Map.Entry<Integer, Boolean> entryset : entries) {
entryset.setValue(!entryset.getValue());
}
notifyDataSetChanged();
}
![效果图](https://img-blog.csdn.net/20170901194351934?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzY0MDEwMDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)