ListView实现CheckBox的单选与多选

来源:互联网 发布:淘宝保养品店铺推荐 编辑:程序博客网 时间:2024/06/05 16:40

国庆之后,很久没写博客了,今天开始更新,记录一些小知识
1.ListView的CheckBox的单选:
其实很简单,我们先写好适配器,然后在getView()方法中:

private int selectPosition = -1;  //记录已经点击的CheckBox的位置@Overridepublic void getItemView(MOrganizationInfo mOrganizationInfo, ViewHolder holder, final int position, View convertView) {CheckBox ckb = holder.getView(R.id.ckb); //checkBox实现单选        ckb.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (ckb.isChecked()) {                    selectPosition = position;                    notifyDataSetChanged();//刷新后checkBox为选中当前点击的那个checkBox                } else {                    selectPosition = -1;                    notifyDataSetChanged();//刷新后取消原选中的                }            }        });        if (selectPosition == position) {            ckb.setChecked(true);        } else {            ckb.setChecked(false);        }     }

2.ListView的多选

final Set<Integer> isSelected = new HashSet<>();@Overridepublic void getItemView(MOrganizationInfo mOrganizationInfo, ViewHolder holder, final int position, View convertView) {        final CheckBox ckb=new CheckBox(this);        ckb.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {        if (ckb.isChecked()) {            isSelected.add(position);            notifyDataSetChanged();        }else{            isSelected.remove(position);            notifyDataSetChanged();        }        ckb.setChecked(isSelected.contains(position));  }

这里只是作为一个小小的记录

原创粉丝点击