取消选中Android

时间:2015-06-01 03:48:22

标签: android android-layout android-checkbox

我的布局中点击了清除按钮,我想取消选中线性布局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我想取消选中所有复选框。我们如何做到这一点请帮助我

1 个答案:

答案 0 :(得分:4)

创建一个for循环,遍历ListView的所有子项,并检查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);
}