Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:一次单击按钮即可选中/取消选中listview中所有复选框的代码_Android - Fatal编程技术网

Android:一次单击按钮即可选中/取消选中listview中所有复选框的代码

Android:一次单击按钮即可选中/取消选中listview中所有复选框的代码,android,Android,当您将listview与SimpleCursorAdapter一起使用时,如何在listview中单击一个按钮即可选中/取消选中所有复选框(int i=0;i

当您将listview与SimpleCursorAdapter一起使用时,如何在listview中单击一个按钮即可选中/取消选中所有复选框(int i=0;ifor(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;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
将列表对象传递给它。只需避免非常长和复杂的列表。

尝试以下代码:

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是的。。。对于自定义列表项,该项将有一个单独的布局。其中只有一个复选框。。我认为(我通常是这样做的)