1.创建三个子xml
personal_settings.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory
android:title="用户名和邮箱">
<EditTextPreference android:key="username"
android:title="username"
android:summary="这是你的极致服务的用户名"
android:defaultValue="输入用户名"
android:dialogTitle="输入你的极致服务用户名"/>
<EditTextPreference android:key="email"
android:title="配制Email"
android:summary="输入你的邮箱地址"
android:defaultValue="your@email.com"/>
</PreferenceCategory>
</PreferenceScreen>
game_settings.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="声音和欺骗" >
<CheckBoxPreference
android:defaultValue="true"
android:key="bSoundOn"
android:summary="输入Sound"
android:title="输入Sound" />
<CheckBoxPreference
android:defaultValue="fales"
android:key="bAllowChaerts"
android:summary="输入字符"
android:title="输入字符" />
</PreferenceCategory>
</PreferenceScreen>
character_settings.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCateory android:title="Character Gender and Race">
<ListPreference android:key ="gender"
android:title="Game Character Gender"
android:summary="This is the gender of your game character"
android:entries="@array/char_genders"
android:dialogTitle="Choose a gender for your character:"/>
<ListPreference android:key="race"
android:title="Game Character Race"
android:summary="This is the race of your game character"
android:entries="@array/char_race_types"
android:entryValues="@array/char_races"
android:dialogTitle="Choose a race for your character:"/>
</PreferenceCateory>
</PreferenceScreen>
2.创建java
package com.dou.userpreferences;
import java.util.List;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.view.View.OnCreateContextMenuListener;
public class UserPrefsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
public void onBuildHeaders(List<Header> target) {
// TODO Auto-generated method stub
loadHeadersFromResource(R.xml.preference_headers, target);
}
public static class UserNameFragment extends PreferenceFragment{
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
PreferenceManager manager = getPreferenceManager();
manager.setSharedPreferencesName("user_prefs");
addPreferencesFromResource(R.xml.personal_settings);
}
}
public static class GameSettingsFragment extends PreferenceFragment{
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
PreferenceManager manager = getPreferenceManager();
manager.setSharedPreferencesName("user_prefs");
addPreferencesFromResource(R.xml.game_settings);
}
}
public static class CharactrSettingsFragment extends PreferenceFragment{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PreferenceManager manager = getPreferenceManager();
manager.setSharedPreferencesName("user_prefs");
addPreferencesFromResource(R.xml.character_settings);
};
}
}
3.设置标头preference_headers.xml
<?xml version="1.0" encoding="utf-8"?>
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >
<header android:fragment="com.dou.userpreferences.UserPrefsActivity$UserNameFragment"
android:title="用户设置"
android:summary = "配制你的用户设置" />
<header android:fragment="com.dou.userpreferences.UserPrefsActivity$GameSettingsfragment"
android:title="Game Settings"
android:summary="Configure you game settings"
/>
<header android:fragment="com.dou.userpreferences.UserPrefsActivity$CharacterSettingsFragment"
android:title="Character Settings"
android:summary="Configure your character settings"/>
</preference-headers>