自定义复选框首选项

时间:2010-08-25 19:15:22

标签: android android-emulator android-manifest

我无法自定义我的复选框,虽然我已经在xml首选项文件中定义了背景,但它不会拉取文件。 1.我试图显示复选框的自定义图像,并将选择器xml定义为“android_button.xml”,如下所示:

   <?xml version="1.0" encoding="utf-8"?>
  <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checkable="true"
      android:drawable="@drawable/state_normal" /> <!-- pressed -->
<item  android:state_checked="true"
      android:drawable="@drawable/android_pressed" /> <!-- focused -->
<item android:drawable="@drawable/state_normal" /> <!-- default -->
</selector>

state_normal和android_pressed是res&gt; drawable文件夹中的两个.png图像。

2.my Checkbox preference.xml文件是:

          <CheckBoxPreference android:key="@string/Drop_Option"
            android:title="Close after call drop"
            android:defaultValue="true"
            android:background="@drawable/android_button"
            />

定义中是否有任何错误,屏幕上显示的唯一更改是android:title文本,如果我更改文本,则会更改文本。没有别的变化。我该如何解决。谢谢你的建议。

2 个答案:

答案 0 :(得分:43)

有两种方法可以实现您的需求,首先是在res / layout中定义自定义复选框布局custom_chexbox.xml:

<?xml version="1.0" encoding="UTF-8"?>
<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+android:id/checkbox" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:focusable="false"
android:clickable="false" android:button="@drawable/android_button"/>

然后,您需要为首选项指定此布局:

<CheckBoxPreference android:key="@string/Drop_Option"
 android:title="Close after call drop" android:defaultValue="true"
 android:widgetLayout="@layout/custom_checkbox"/>

第二种方法是创建自定义主题,重新定义复选框视图的样式并将主题应用于首选项活动,有关详细信息,请参阅How to customize the color of the CheckMark color in android in a dialog. : android

答案 1 :(得分:0)

创建一个可drwable的xml文件:

New_ID

以编程方式设置它 cb.setButtonDrawable(R.drawable.checkboxcustom);