Android 首选项活动-定制支票、单选按钮等的样式

Android 首选项活动-定制支票、单选按钮等的样式,android,checkbox,preferences,radio,preferencescreen,Android,Checkbox,Preferences,Radio,Preferencescreen,可能重复: 有没有办法自定义首选项活动中元素的样式 我只能改变彩色文本、背景等 我还想更改CheckBoxPreference中的复选标记和单选按钮样式,依此类推 我对API8或更高版本感兴趣 谢谢你的帮助 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <CheckB

可能重复:

有没有办法自定义
首选项活动
中元素的样式

我只能改变彩色文本、背景等

我还想更改
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>

我明白你现在说的话。我以为你只是在
视图中使用了普通
复选框
。您正在使用
复选框首选项
和其他
首选项
视图

好的,这个概念非常相似

您需要定义自定义小部件布局。在您的
res/layout
目录中执行此操作,并将其称为
custom\u checkbox.xml
。我们可以使用
复选框作为示例

通过使用
复选框
定义您希望
复选框首选项
与您在
res/layout
目录中创建的自定义小部件布局的外观。例如:

<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" />
如果您没有使用
xml
来定义
布局
,您可以使用如下代码:

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

Konstantin Burov


评论中延伸问题的相关链接:

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

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


我明白你现在说的话。我以为你只是在
视图中使用了普通
复选框
。您正在使用
复选框首选项
和其他
首选项
视图

好的,这个概念非常相似

您需要定义自定义小部件布局。在您的
res/layout
目录中执行此操作,并将其称为
custom\u checkbox.xml
。我们可以使用
复选框作为示例

通过使用
复选框
定义您希望
复选框首选项
与您在
res/layout
目录中创建的自定义小部件布局的外观。例如:

<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" />
如果您没有使用
xml
来定义
布局
,您可以使用如下代码:

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

Konstantin Burov


评论中延伸问题的相关链接:

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

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


情况并非如此。我需要将它们添加到CheckBoxPreference、ListPreference等。你的方式是好的,但它不与这些工作。没有背景属性。我不明白你的问题。请阅读我的编辑。我现在明白你说的了。一旦你能确认这个答案是正确的,我将删除前面的答案。好的,这似乎很有希望:)我找不到CheckBoxPreferences的xml和custom_checkbox.xml->android:widgetLayout=“@layout/custom_checkbox”之间的链接。我会在下班后测试它。让我知道它是否适合你。是的,它正在工作,但我有另一个问题。现在,并不是整个条目(包括名称、摘要等)都是可点击的,而是只有复选框图像:。另外,如何更改列表项的样式?我想为列表项设置窗口背景(图像)和白色背景。有机会吗?另外,我想在列表项中添加so填充。我甚至不确定这是否可能。也许会凌驾于整个优先活动之上?事实并非如此。我需要将它们添加到CheckBoxPreference、ListPreference等。你的方式是好的,但它不与这些工作。没有背景属性。我不明白你的问题。请阅读我的编辑。我现在明白你说的了。一旦你能确认这个答案是正确的,我将删除前面的答案。好的,这似乎很有希望:)我找不到CheckBoxPreferences的xml和custom_checkbox.xml->android:widgetLayout=“@layout/custom_checkbox”之间的链接。我会在下班后测试它。让我知道它是否适合你。是的,它正在工作,但我有另一个问题。现在,并不是整个条目(包括名称、摘要等)都是可点击的,而是只有复选框图像:。另外,如何更改列表项的样式?我想为列表项设置窗口背景(图像)和白色背景。有机会吗?另外,我想在列表项中添加so填充。我甚至不确定这是否可能。可能会覆盖整个优先活动?