Android:一次单击按钮即可选中/取消选中listview中所有复选框的代码
当您将listview与SimpleCursorAdapter一起使用时,如何在listview中单击一个按钮即可选中/取消选中所有复选框(int i=0;iAndroid:一次单击按钮即可选中/取消选中listview中所有复选框的代码,android,Android,当您将listview与SimpleCursorAdapter一起使用时,如何在listview中单击一个按钮即可选中/取消选中所有复选框(int i=0;i
for(int i=0; i < list.getChildCount(); i++){
ViewGroup item = (ViewGroup)list.getChildAt(i);
CheckBox checkbox = (CheckBox)item.findViewById(R.id.checkbox_id);
checkbox.setChecked(true);
}
视图组项=(视图组)列表.getChildAt(i);
CheckBox=(CheckBox)item.findViewById(R.id.CheckBox\u id);
checkbox.setChecked(true);
}
这里的ViewGroup是用于(int i=0;iprivate void removeAllChecks(ViewGroup vg) {
View v = null;
for(int i = 0; i < vg.getChildCount(); i++){
try {
v = vg.getChildAt(i);
((CheckBox)v).setChecked(false);
}
catch(Exception e1){ //if not checkBox, null View, etc
try {
removeAllChecks((ViewGroup)v);
}
catch(Exception e2){ //v is not a view group
continue;
}
}
}
}
private void removeAllChecks(视图组vg){
视图v=null;
对于(int i=0;i
将列表对象传递给它。只需避免非常长和复杂的列表。尝试以下代码:
private void removeAllChecks(ViewGroup vg) {
View v = null;
for(int i = 0; i < vg.getChildCount(); i++){
try {
v = vg.getChildAt(i);
((CheckBox)v).setChecked(false);
}
catch(Exception e1){ //if not checkBox, null View, etc
try {
removeAllChecks((ViewGroup)v);
}
catch(Exception e2){ //v is not a view group
continue;
}
}
}
}
private void removeAllChecks(视图组vg){
视图v=null;
对于(int i=0;i
将列表对象传递给它。只需避免非常长和复杂的列表。您应该能够获取视图组的子级,对其进行迭代,并修改复选框的复选状态。您应该能够获取视图组的子级,对其进行迭代,并修改复选框的复选状态。如果非复选框子项远程常见,则在尝试强制转换为复选框之前,最好先对其进行测试,而不是依赖异常来处理常规情况。如果非复选框子项远程常见,在尝试强制转换为复选框之前,最好先对它们进行测试,而不是依赖异常来处理常规情况。这似乎是假设在每个视图组集合中都有一个具有相同固定ID的复选框,而这些视图组又是父列表视图的子视图。@ChrisStratton yes。。。对于自定义列表项,该项将有一个单独的布局。其中只有一个复选框。。我假设(我通常这样做)这似乎假设在每个视图组集合中都有一个具有相同固定ID的复选框,而这些视图组又是父列表视图的子视图。@ChrisStratton是的。。。对于自定义列表项,该项将有一个单独的布局。其中只有一个复选框。。我认为(我通常是这样做的)