I have a simple preference screen defined like this
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Security">
<CheckBoxPreference
android:title="Require Pin on Start"
android:summary="Require pin to run the application"
android:key="@string/pref_require_pin"
android:defaultValue="false" />
</PreferenceCategory>
<PreferenceCategory android:title="Settings">
<ListPreference
android:title="History Age (in days)"
android:summary="Display items up to 30 days old"
android:key="@string/pref_history_days"
android:defaultValue="30"
android:entries="@array/days_list"
android:entryValues="@array/days_list"
android:dialogTitle="Select History Age"/>
</PreferenceCategory>
</PreferenceScreen>
I have a style setup already and used elsewhere in my app.
<style name="ListHeader">
<item name="android:textColor">#000000</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">12sp</item>
<item name="android:background">#cccccc</item>
<item name="android:paddingTop">6px</item>
<item name="android:paddingBottom">6px</item>
<item name="android:paddingLeft">12px</item>
</style>
and here is my activity
public class PreferencesActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.layout.preferences);
}
}
How do I apply my custom style to the PreferenceCategory heading?
You should take a look at
Preference.Categorystyle:Let’s take a look at
preference_category.xmlfile:So you need to create custom theme that extends default android
Themeand overridelistSeparatorTextViewStylevalue withListHeaderstyle. And then apply this theme to Activity that extendsPreferenceActivity.Here is how you can do it.
First, in your
styles.xmladd next code:Then in your
AndroidManifest.xmladd theme to your preference acitivity:Here is a screenshot: