为我的应用中的所有复选框设置自定义drawable

时间:2014-07-26 02:35:45

标签: android android-styles android-checkbox

我正在尝试为所有复选框设置自定义背景。这就是我所拥有的:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <style name="Theme.Foo" parent="@android:style/Theme.Holo.Light.DarkActionBar">
    <item name="android:checkboxStyle">@style/MyCheckbox</item>
    </style>
  <style name="MyCheckbox" parent="@android:style/Widget.CompoundButton.CheckBox">
      <item android:state_checked="true" android:drawable="@drawable/checkboxChecked" /> // unbound prefix error here.
      <item android:state_checked="false" android:drawable="@drawable/checkboxUnchecked" />
  </style>
</resources>

但是当我尝试构建时,我在state_checked =&#34; true&#34;的行上得到一个未绑定的前缀错误。我错过了什么?

1 个答案:

答案 0 :(得分:3)

您正试图在样式中添加selector drawable,这会给您编译时错误。

<强>溶液

您需要在drawable中创建一个xml文件作为selector,并将您的样式中的xml用作背景

<强>样品:

checkbox_selector或您想要的任何名称中创建一个名为drawable folder的可绘制

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_checked="true" android:drawable="@drawable/checkboxChecked" /> // unbound prefix error here.
  <item android:state_checked="false" android:drawable="@drawable/checkboxUnchecked" />
</selector>

在你的风格中使用那个drawable

 <style name="MyCheckbox" parent="@android:style/Widget.CompoundButton.CheckBox">
    <item name="android:background">@drawable/checkbox_selector</item>
  </style>