android - 如何选择/取消选择所有复选框?

标签 android checkbox adapter

我有一个带有 ImageView 、 TextView 和复选框的适配器,以及一个用于选择所有复选框的“全选”按钮。我搜索了很多有关如何执行此操作的信息(选中所有复选框),但没有成功。谁能解释更多我该怎么办?拜托...我必须做这件紧急的事

这是我的适配器:

Public class LazyAdapter1 extends BaseAdapter {

        private Activity activity;
        private String[] data;
        private String[] nume;
        private LayoutInflater inflater=null;
        public ImageLoader imageLoader; 

        public LazyAdapter1(Activity a, String[] d, String[] f) {
            activity = a;
            data=d;
            nume=f;
            inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            imageLoader=new ImageLoader(activity.getApplicationContext());
        }

        public int getCount() {
            return data.length;
        }

        public Object getItem(int position) {
            return position;
        }

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

        public class ViewHolder{
            public TextView text;
            public ImageView image;
            public CheckBox ck;
        }



        public View getView(int position, View convertView, ViewGroup parent) {
            View vi=convertView;
            ViewHolder holder;
            if(convertView==null){
                vi = inflater.inflate(R.layout.item, null);
                holder=new ViewHolder();
                holder.text=(TextView)vi.findViewById(R.id.text);;
                holder.image=(ImageView)vi.findViewById(R.id.image);
                holder.ck=(CheckBox)vi.findViewById(R.id.chkbox);
                vi.setTag(holder);
            }
            else
                holder=(ViewHolder)vi.getTag();

            holder.text.setText(nume[position]);
            holder.image.setTag(data[position]);
            imageLoader.DisplayImage(data[position], activity, holder.image);
            return vi;
        }
    }

提前致谢。

最佳答案

boolean flag = true;

现在点击你的按钮 交换标志的值

flag = !flag;
adapter.notifydatasetchanged();

现在在你的 getView 方法中

public View getView(int position, View convertView, ViewGroup parent) {
    View vi = convertView;
    ViewHolder holder;
    if (convertView == null) {
        vi = inflater.inflate(R.layout.item, null);
        holder = new ViewHolder();
        holder.text = (TextView) vi.findViewById(R.id.text);
        holder.image = (ImageView) vi.findViewById(R.id.image);
        holder.ck = (CheckBox) vi.findViewById(R.id.chkbox);
        vi.setTag(holder);
    } else {
        holder = (ViewHolder) vi.getTag();
    }
    holder.ck.setChecked(flag);
    holder.text.setText(nume[position]);
    holder.image.setTag(data[position]);
    imageLoader.DisplayImage(data[position], activity, holder.image);
    return vi;
}

关于android - 如何选择/取消选择所有复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6758109/

相关文章:

java - 有什么方法可以获取联系人应用程序的图标?

php - 通过 jQuery ajax() 向 PHP 发送多个复选框数据

c# - 适配器设计模式需要什么?

android - 结合 Activity 自定义动画和场景过渡动画

android - 将 appcompat 和 buildtools 切换到 v21,aapt.exe 已停止工作

android - 将属性传递给 Android 库项目构建文件

javascript - jstree 不兼容的复选框和类型插件

javascript - jquery Datatables 复选框获取所有选中的行

android - 在其他Activity中更新数据库后如何更新Activity中的ListView?

android - 具有多个 View 的 firebase 回收器适配器