单击时,我的布局中有一个清除按钮,我想取消选中线性布局listview中的所有复选框。

XML格式

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id ="@+id/mainLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btnClear"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right|center"
                android:gravity="right|center"
                android:text="Remove" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">
            <ListView
                android:id="@+id/listview"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="5"
                android:cacheColorHint="@android:color/transparent"
                android:divider="#fff"
                android:dividerHeight="1dp"
                android:fadingEdge="none">
            </ListView>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>


listview内部,我正在扩大一个具有复选框的布局。现在btnClear我要取消选中所有复选框。我们如何做到这一点,请帮助我

最佳答案

创建一个遍历ListView所有子项的for循环,并检查View是否为CheckBox类型,并在同一循环上执行setChecked(false)

for (int i = 0; i < mListView.getCount(); i++) {
       View mChild = mListView.getChildAt(i);

       //Replace R.id.checkbox with the id of CheckBox in your layout
       CheckBox mCheckBox = (CheckBox) mChild.findViewById(R.id.checkbox);
       mCheckBox.setChecked(false);
}

07-28 04:05