正确的方法来检查ListView中所有复选框? [英] Correct way to check all checkboxes in ListView?

查看:86
本文介绍了正确的方法来检查ListView中所有复选框?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一组CHOICE_MODE_MULTIPLE一个L​​istView。我也有附加的头管理 (UN)选择的所有项目。现在的问题是:是不是做了正确的方法是什么?那么它的工作原理,但我不知道这就是正确的方法。当你看到下面有一个checkAllCheckBoxes 我传递对象头onClickListener()方法。你怎么看?将不胜感激任何响应。

 私人OnClickListener checkAllCheckboxes =新OnClickListener(){
    公共无效的onClick(视图v){
        ListView的LV = getListView();
        INT大小= getListAdapter()getCount将()。
        如果(lv.isItemChecked(0)){
            的for(int i = 0; I< =大小;我++){
                lv.setItemChecked(我,FALSE);
            }
        } 其他 {
            的for(int i = 0; I< =大小;我++){
                lv.setItemChecked(我,真正的);
            }
        }
    }

};
 

解决方案

您可以优化您的code是这样的:

替换

 如果(lv.isItemChecked(0)){
    的for(int i = 0; I< =大小;我++){
        lv.setItemChecked(我,FALSE);
    }
} 其他 {
    的for(int i = 0; I< =大小;我++){
        lv.setItemChecked(我,真正的);
    }
}
 

 布尔检查= lv.isItemChecked(0);
    的for(int i = 0; I< =大小;我++)
        lv.setItemChecked(一,检查!);
 

I have a ListView with set CHOICE_MODE_MULTIPLE. I also have additional header to manage (un)selecting all the items. The question is : is it correct way to do that? Well it works, however I'm not sure thats proper way. As you see below there is an checkAllCheckBoxes object which I pass to header onClickListener() method. What do you think? Would be grateful for any responses.

private OnClickListener checkAllCheckboxes = new OnClickListener(){
    public void onClick(View v) {
        ListView lv = getListView();
        int size = getListAdapter().getCount();
        if(lv.isItemChecked(0)){
            for(int i = 0; i<=size; i++){
                lv.setItemChecked(i, false);
            }
        } else {
            for(int i = 0; i<=size; i++){
                lv.setItemChecked(i, true);
            }
        }
    }

};

解决方案

You can optimize your code like this :

Replace

if(lv.isItemChecked(0)){
    for(int i = 0; i<=size; i++){
        lv.setItemChecked(i, false);
    }
} else {
    for(int i = 0; i<=size; i++){
        lv.setItemChecked(i, true);
    }
}

by

    boolean check = lv.isItemChecked(0);
    for(int i = 0; i <= size; i++)
        lv.setItemChecked(i, !check);

这篇关于正确的方法来检查ListView中所有复选框?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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