效果图
Settings类Java代码
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class Settings extends PreferenceActivity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.layout.preferences);
}
}
string.xml
中需要加上2个字符串数组
<string-array name="auto_update_frequency_entry">
<item>10分钟</item>
<item>30分钟</item>
<item>1小时</item>
<item>12小时</item>
<item>24小时</item>
</string-array>
<string-array name="auto_update_frequency_value">
<item>10</item>
<item>30</item>
<item>60</item>
<item>720</item>
<item>1440</item>
</string-array>
preferences.xml
<?xml version="1.0" encoding="UTF-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:title="setting" >
<CheckBoxPreference
android:title="Love me?"
android:summaryOn="Yes,I love you!"
android:summaryOff="No,I am sorry."
android:defaultValue="true">
</CheckBoxPreference>
<PreferenceCategory
android:title="PreferenceCategory:Emotions"
android:summary="settings about emotions">
<CheckBoxPreference
android:title="Love me?"
android:summaryOn="Yes,I love you!"
android:summaryOff="No,I am sorry."
android:defaultValue="true">
</CheckBoxPreference>
<CheckBoxPreference
android:title="Hate me?"
android:summaryOn="Yes,I hate you!"
android:summaryOff="No,you are a good person."
android:defaultValue="false">
</CheckBoxPreference>
</PreferenceCategory>
<PreferenceScreen
android:title="PreferenceScreen:Relations"
android:summary="settings about relations">
<CheckBoxPreference
android:title="Family?"
android:summaryOn="Yes,we are family!"
android:summaryOff="No,I am sorry."
android:defaultValue="true">
</CheckBoxPreference>
<CheckBoxPreference
android:title="Friends?"
android:summaryOn="Yes,we are friends!"
android:summaryOff="No,I am sorry."
android:defaultValue="false">
</CheckBoxPreference>
</PreferenceScreen>
<ListPreference
android:key="list_key"
android:title="自动更新"
android:summary="设置自动更新频率"
android:entries="@array/auto_update_frequency_entry"
android:entryValues="@array/auto_update_frequency_value"
android:dialogTitle="更新频率"
android:defaultValue="10"
/>
</PreferenceScreen>
说明:
1.PreferenceScreen中嵌套着PreferenceScreen的话,那需要再跳转一个界面才到选择界面,而用PreferenceCategory就直接显示在当前界面可以对其选择。
2.CheckBoxPreference 、ListPreference 都有个key属性,貌似必须设置了key属性系统才会自动对设置结果进行保存,因为保存的形式是类似map的键值对形式保存,所以没有key也就没法保存了。
参考:
http://www.cnblogs.com/kakafra/archive/2012/09/19/2694444.html
http://blog.youkuaiyun.com/ichliebephone/article/details/5916320