2

可能重复:
更改 Checkbox for Android
自定义复选框首选项的选中和未选中图标

有什么方法可以自定义元素的样式PreferencesActivity吗?

我只能更改颜色文本、背景等。

我还想更改复选标记和单选按钮样式CheckBoxPreference等。

我对 API8 或更高版本很感兴趣。

谢谢你的帮助!

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <CheckBoxPreference
        android:defaultValue="true"
        android:key="vibrate"
        android:summary="summary"
        android:title="Some title"
        android:widgetLayout="@layout/custom_checkbox" />
    <CheckBoxPreference
        android:defaultValue="true"
        android:key="autorotate"
        android:summary="summary"
        android:title="auto rotate" />
</PreferenceScreen>
4

1 回答 1

4

我明白你现在在说什么。我以为你只是CheckBox在你的View. 您正在使用CheckBoxPreference和其他Preference Views.

好的,这个概念非常相似。

您需要定义自定义小部件布局。在您的res/layout目录中执行此操作并调用它custom_checkbox.xml。我们可以CheckBox以 为例。

使用. CheckBoxPreference_ res/layout_ CheckBox例如:

<CheckBox
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+android:id/customCheckBox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:button="@drawable/android_button"
    android:clickable="false"
    android:focusable="false" />

您可以替换为您找到或设计android:button的任何内容。drawable

现在您需要定义您的CheckBoxPreference并将其设置android:widgetLayoutCheckBox您刚刚在res/layout. 例如:

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

如果你不xml用于定义你的layout,你可以用这样的代码来做:

    CheckBoxPreference checkBoxPreference = new CheckBoxPreference(this);
    checkBoxPreference.setWidgetLayoutResource(R.layout.custom_checkbox);

发现与此问题类似的资源。

康斯坦丁·布罗夫


评论中扩展问题的相关链接:

另外,如何更改列表项的样式?

安卓列表视图样式

另外,我想在列表项中添加一些填充。

间距-listview-items-android

于 2012-08-05T16:38:52.460 回答