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

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

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

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

4

3 回答 3

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如果所有复选框都未选中,则为 true,否则为 false

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

检查null退货getChildAt也很好。

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

于 2013-09-04T01:18:05.700 回答
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
}
于 2013-09-04T01:17:08.287 回答
0

您可以使用 isChecked 函数来查找复选框是否被选中,然后在此基础上构建您的逻辑。

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

于 2013-09-04T01:13:36.693 回答