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
}
我如何像这样循环,因为我不确定我的复选框中的内容数量。
答案 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
}