checkBox被检查?循环内部复选框元素

时间:2013-09-04 01:09:07

标签: java android checkbox

int count = listView.getChildCount();
for (int i = 0; i < count; i++) {
    View child = list.getChildAt(i);
    //check that child..
}

我想使用以下代码来查看是否检查了checkBox的总数。就像我有3个复选框我想要的东西相当于:

if(!list.getChildAt(0) && !list.getChildAt(1) && !list.getChildAt(2)){
       // do something with all unchecked checkbox
}

我如何像这样循环,因为我不确定我的复选框中的内容数量。

3 个答案:

答案 0 :(得分:1)

只需修改if语句即可返回复选框的状态。

int count = listView.getChildCount();
boolean allUnchecked = true;
for (int i = 0; i < count; i++) {
    Object child = (Object) listView.getChildAt(i);
    if (child instanceof CheckBox) {
        CheckBox checkBoxChild = (CheckBox) child;
        if (checkBoxChild.isChecked()) {
            allUnchecked = false;   //one is checked, sufficient to say that not all is unchecked
            break;    //get out the for loop
        }
    }
}
如果取消选中所有复选框,则

allUnchecked为真,否则为

我不是Android开发人员,我找不到getChildAt的文档,所以我不知道它返回了什么。如果它是一个对象,你可以省略强制转换。

检查null getChildAt的回复率是否合适。

Ps:这不是一个好的代码,你可以把它当作伪代码来知道如何实现如何检查的逻辑,获取CheckBoxes的列表是你的任务:)

答案 1 :(得分:0)

您可以使用isChecked函数查找是否选中了复选框,然后在其上构建逻辑。

如果你能进一步澄清你的问题,我将能够提出逻辑。

答案 2 :(得分:0)

if(!list.getChildAt(0) && !list.getChildAt(1) && !list.getChildAt(2)){
       // do something with all unchecked checkbox
}

而不是

if(!list.getChildAt(0) || !list.getChildAt(1) || !list.getChildAt(2)){
       // do something with all unchecked checkbox
}