android复选框drawable崩溃的应用程序

时间:2015-06-16 17:22:22

标签: android checkbox

我是Android的新手,我正在关注堆栈溢出的其他问题和答案,我觉得我越来越近,但我无法让它工作。 当我尝试它时崩溃我的应用程序。

只是为了测试它正在使用的功能

Image

Image Checked

我的代码在drawable文件夹中有一个cb_selector。

<?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"
        android:color="#000000" />
    <!-- checked -->
    <item
        android:state_checked="false"
        android:drawable="@drawable/checkbox_empty"
        android:color="#000000"/>
    <!-- unchecked -->
    <item
        android:state_focused="true"
        android:color="#000000"/>
    <!-- on focus -->
    <item android:color="#000000"/>
    <!-- default -->
</selector>

我的复选框是:

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/ownit_text"
        android:id="@+id/switch_ownit"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:layout_toEndOf="@id/imageView_amiibo"
        android:layout_toRightOf="@+id/imageView_amiibo"
        android:layout_below="@+id/textView_amiiboName"
        android:background="@drawable/cb_selector"/>
在Android ADK网站上,它使用android:textColor=""android:background=""进行堆栈溢出,有人曾说过使用android:button=""

当我使用背景或按钮时,它会崩溃。当我使用textcolor时它只会影响复选框标签,并且不会更改drawable。

1 个答案:

答案 0 :(得分:1)

根据日志

  

引起:org.xmlpull.v1.XmlPullParserException:二进制XML文件行#15:标记需要一个&#39; drawable&#39;定义可绘制的属性或子标记

更改复选框

 android:background="@drawable/cb_selector"/>

 android:button="@drawable/cb_selector"/>

编辑:

你是对的,你正在使用图像,所以你必须改变它

 android:button="@drawable/cb_selector"/>

小心img尺寸。

您还需要删除selector.xml中的颜色,并为每个状态使用drawable。像这样的东西

<?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"
    />
    <!-- checked -->
    <item
    android:state_checked="false"
    android:drawable="@drawable/checkbox_empty"
   />
    <!-- unchecked -->
    <item
    android:state_focused="true"
    android:drawable="@drawable/checkbox_empty"/>
    <!-- on focus -->
    <item android:drawable="@drawable/checkbox_empty"/>
    <!-- default -->
</selector>