PreferenceActivity - 自定义复选框,单选按钮等样式

时间:2012-08-05 16:27:11

标签: android checkbox preferences radio preferencescreen

  

可能重复:
  Change icons of checked and unchecked for Checkbox for Android
  customize check box preference

有没有办法在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>

1 个答案:

答案 0 :(得分: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:widgetLayout设置为您在CheckBox中定义的自定义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);

Resources found that were similar to this question.

Konstantin Burov


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

  

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

android-listview-style

  

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

spacing-between-listview-items-android