如何选择/取消选择所有复选框? [英] How to select/deselect all checkBox?

查看:126
本文介绍了如何选择/取消选择所有复选框?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个ImageView的,一个TextView和一个复选框和一个按钮,选择所有的复选框全选的适配器。我搜索了很多关于我如何能做到这一点(选择全部复选框),但没有奏效。任何人能解释更多的我该怎么办?请...我必须做这个紧急

下面是我的适配器:

 公共类LazyAdapter1扩展了BaseAdapter {

        私人活动的活动;
        私有String []的数据;
        私有String [] nume;
        私人LayoutInflater充气= NULL;
        公共ImageLoader的ImageLoader的;

        公共LazyAdapter1(活动一,的String [] D,的String [] F){
            活性= A;
            数据= D;
            nume = F;
            充气=(LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            ImageLoader的=新ImageLoader的(activity.getApplicationContext());
        }

        公众诠释getCount将(){
            返回data.length;
        }

        公共对象的getItem(INT位置){
            返回的位置;
        }

        众长getItemId(INT位置){
            返回的位置;
        }

        公共类ViewHolder {
            公共TextView的文字;
            公众ImageView的形象;
            公开复选框CK;
        }



        公共查看getView(INT位置,查看convertView,ViewGroup中父){
            查看VI = convertView;
            ViewHolder持有人;
            如果(convertView == NULL){
                VI = inflater.inflate(R.layout.item,NULL);
                持有人=新ViewHolder();
                holder.text =(TextView中)vi.findViewById(R.id.text);;
                holder.image =(ImageView的)vi.findViewById(R.id.image);
                holder.ck =(复选框)vi.findViewById(R.id.chkbox);
                vi.setTag(保持器);
            }
            其他
                支架=(ViewHolder)vi.getTag();

            holder.text.setText(nume [位置]);
            holder.image.setTag(数据[位置]);
            imageLoader.DisplayImage(数据[位置],活动,holder.image);
            返回六;
        }
    }
 

在此先感谢。

解决方案

 布尔标志= TRUE;
 

现在您按一下按钮 交换标记值

 标志=标志!;
adapter.notifydatasetchanged();
 

现在在getView方法

 公开查看getView(INT位置,查看convertView,ViewGroup中父){
    查看VI = convertView;
    ViewHolder持有人;
    如果(convertView == NULL){
        VI = inflater.inflate(R.layout.item,NULL);
        持有人=新ViewHolder();
        holder.text =(TextView中)vi.findViewById(R.id.text);
        holder.image =(ImageView的)vi.findViewById(R.id.image);
        holder.ck =(复选框)vi.findViewById(R.id.chkbox);
        vi.setTag(保持器);
    } 其他 {
        支架=(ViewHolder)vi.getTag();
    }
    holder.ck.setChecked(标志);
    holder.text.setText(nume [位置]);
    holder.image.setTag(数据[位置]);
    imageLoader.DisplayImage(数据[位置],活动,holder.image);
    返回六;
}
 

I have an adapter with an imageview,a textView and a Checkbox and a button "Select all" for selecting all the checkbox. I searched a lot about how can I do this (select all checkbox) but it not worked. Can anyone explain more what should I do? Please...I have to do this urgent

Here is my adapter :

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;
        }
    }

Thanks in advance.

解决方案

boolean flag = true;

Now on your button click swap the value of flag

flag = !flag;
adapter.notifydatasetchanged();

Now in your getView method

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;
}

这篇关于如何选择/取消选择所有复选框?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆