运行结果:
[img]http://dl.iteye.com/upload/attachment/536602/2768b06d-283b-31a6-b5a9-d2fcb399d74d.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/536604/0bc1174a-81a4-3a85-9c90-57748005fe8c.jpg[/img]

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
	<PreferenceCategory android:title="PreferenceCategory 1">
		<CheckBoxPreference android:key="CheckBox1"
			android:title="CheckBox" android:summaryOn="某功能: 开启"
			android:summaryOff="某功能: 关闭" android:defaultValue="true" />
	</PreferenceCategory>
	<PreferenceCategory android:title="PreferenceCategory 2">
		<PreferenceScreen android:title="二级PreferenceScreen">
			<CheckBoxPreference android:key="CheckBox2"
				android:title="CheckBox" android:summaryOn="某功能: 开启"
				android:summaryOff="某功能: 关闭" android:defaultValue="true" />
		</PreferenceScreen>
	</PreferenceCategory>
	<PreferenceCategory android:title="PreferenceCategory 3">
		<ListPreference android:key="ListPreference"
			android:title="ListPreference" android:summary="ListPreference测试"
			android:dialogTitle="ListPreference" android:entries="@array/entries_list_preference"
			android:entryValues="@array/entriesvalue_list_preference" />
		<EditTextPreference android:key="EditTextPreference"
			android:title="EditTextPreference" android:summary="点击输入"
			android:dialogTitle="输入设置" />
		<RingtonePreference android:key="RingtonePreference"
			android:title="RingtonePreference" android:summary="选择铃声" />
	</PreferenceCategory>
</PreferenceScreen>



array.xml:


<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string-array name="entries_list_preference">
		<item>test1</item>
		<item>test2</item>
		<item>test3</item>
	</string-array>
	<string-array name="entriesvalue_list_preference">
		<item>1</item>
		<item>2</item>
		<item>3</item>
	</string-array>
</resources>



activity.java


@Override
public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	addPreferencesFromResource(R.layout.main);
}



以上是PreferenceActivity的xml描述,那么在程序中我们只需要新建一个继承自PreferenceActivity的Activity,然后在主程序中调用就可以了。这个PreferenceActivity中的设置存储是完全自动的,你不需要再用代码去实现设置的存储,PreferenceActivity创建后会自动创建一个配置文件/data/data/you_package_name/shared_prefs/you_package_name_you_xml_name.xml。上例中自动生成的配置文件如下:


<?xml version='1.0' encoding='utf-8' standalone='yes' ?> 
<map>
<string name="EditTextPreference">12332312</string>
<string name="ListPreference">2</string>
<string name="RingtonePreference">content://settings/system/ringtone</string>
<boolean name="CheckBox1" value="true" />
<boolean name="CheckBox2" value="true" />
</map>



要取得其中的值可以通过如下的方法:


SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
value = prefs.getString("ListPreference", "unset");