RecyclerView中CheckBox复用处理以及批量操作

来源:互联网 发布:乔丹生涯总数据 编辑:程序博客网 时间:2024/05/29 19:24

private List<String> selectedPositions;
需要初始化


qxCb.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View v) {        boolean isCheck = qxCb.isChecked();        if (isCheck) {            selectedPositions.clear();            for (int i = 0; i < sourceList.size(); i++) {                selectedPositions.add(i + "");            }            adapter.notifyDataSetChanged();        } else {            selectedPositions.clear();            adapter.notifyDataSetChanged();        }    }});

final CheckBox checkBox = holder.getView(R.id.selectCb);if (selectedPositions.contains(layoutPosition + "")) {    checkBox.setChecked(true);} else {    checkBox.setChecked(false);}checkBox.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View v) {        boolean isChecked = checkBox.isChecked();        if (isChecked) {            checkBox.setClickable(false);            checkBox.setEnabled(false);            if (!selectedPositions.contains(layoutPosition + "")) {                selectedPositions.add(layoutPosition + "");                checkBox.setClickable(true);                checkBox.setEnabled(true);            } else {                checkBox.setClickable(true);                checkBox.setEnabled(true);            }        } else {            checkBox.setClickable(false);            checkBox.setEnabled(false);            //全选失效            if (qxCb.isChecked()) {                qxCb.setChecked(false);            }            if (selectedPositions != null && selectedPositions.contains(layoutPosition + "")) {                selectedPositions.remove(layoutPosition + "");                checkBox.setClickable(true);                checkBox.setEnabled(true);            } else {                checkBox.setClickable(true);                checkBox.setEnabled(true);            }        }    }});

0 0
原创粉丝点击