张萌&韩墨羽——ListView的全选、全不选、反选、显示、删除

本文介绍了如何在安卓应用中实现ListView的全选、全不选、反选功能,并添加了显示与删除条目的操作。通过自定义Bean类、设置适配器以及在MainActivity中编写逻辑代码,最终实现类似示例图所示的功能,其中包括一个用于删除的按钮。
摘要由CSDN通过智能技术生成

ListView的全选、全不选、反选、显示、删除

运行效果

与下图相似,新增删除按钮
相似
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自定义Bean类

 /**
 * 定义数据显示的Bean
 */
public class Bean {
    public String id;

    public String title;

    public String desc;

    public int m=1;
    /**\
     * isCheck  标记是否被选中
     * isCheck属性,该属性主要标志CheckBox是否选中
     */
    public boolean isCheck;

    public Bean(String id, String title, String desc) {
        this.id = id;
        this.title = title;
        this.desc = desc;
    }
}

适配器

  public class MyAdapter extends BaseAdapter {
    private Context context;
    private List<Bean> beanList;
    private LayoutInflater inflater;
    public boolean flag = false;
    private Bean bean;

    public MyAdapter(Context context, List<Bean> beanList) {
        this.context = context;
        this.beanList = beanList;

        inflater = LayoutInflater.from(this.context);
    }

    @Override
    public int getCount() {
        return beanList.size();
    }

    @Override
    public Object getItem(int position) {
        return beanList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if (convertView==null){
            convertView = inflater.inflate(R.layout.list_item_date,null);
            viewHolder = new ViewHolder();
            viewHolder.checkBox = convertView.findViewById(R.id.checkbox_id);
            viewHolder.title_text = convertView.findViewById(R.id.text_title);
            viewHolder.desc_text = convertView.findViewById(R.id.text_desc);
            convertView.setTag(viewHolder);
        }else{
            viewHolder = (ViewHolder) convertView.getTag();
        }
        bean = beanList.get(position);
        if (bean!=null){
            viewHolder.title_text.setText(bean.title);
            viewHolder.desc_text.setText(bean.desc);
            // 根据isSelected来设置checkbox的显示状况
            if (flag){
                viewHolder.checkBox.setVisibility(View.VISIBLE);
            }else {
                viewHolder.checkBox.setVisibility(View.GONE);
            }

            viewHolder.checkBox.setChecked(bean.isCheck);

            //注意这里设置的不是onCheckedChangListener,还是值得思考一下的
  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值