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

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

问题描述

我有一个设置为 CHOICE_MODE_MULTIPLE 的 ListView.我还有额外的标题要管理(un) 选择所有项目.问题是:这样做是否正确?好吧,它有效,但是我不确定那是正确的方法.正如你在下面看到的,有一个 checkAllCheckBoxes我传递给标题 onClickListener() 方法的对象.你怎么认为?如有任何答复,我们将不胜感激.

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 :

替换

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

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

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

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