未选中复选框

时间:2013-04-17 13:48:47

标签: android

当我从xml更改复选框的按钮时,复选框不会反映已选中。 我的xml文件是:

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

<TextView
    android:id="@+id/memberName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="57.56"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="#000000"/>

<CheckBox
    android:id="@+id/checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:button="@drawable/checkbox"   <----- change button of checkbox
     />

@ drawable / checkbox是png文件

1 个答案:

答案 0 :(得分:1)

为了工作,需要将android:button设置为选择器xml文件,该文件为已检查和未检查状态定义可绘制项。尝试这样设置:

<强> checkbox_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/checkbox_checked" />
    <item android:state_checked="false" android:drawable="@drawable/checkbox_unchecked" />
</selector>

其中checkbox_checked.png是您在选中此框时要使用的图像。并且checkbox_unchecked.png是未选中时的图像。

然后在您的主布局中设置按钮,如下所示:

<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/checkbox_selector"
 />