<PreferenceCategory android:title="软件外观皮肤设置" >
<ListPreference
android:defaultValue="black"
android:entries="@array/setting_skintheme"
android:entryValues="@array/setting_skintheme_value"
android:key="SkinTheme"
android:summary="请选择您喜欢的软件皮肤颜色"
android:title="皮肤颜色" />
</PreferenceCategory>
ListPreference需要设置两个属性:android:entries和android:entryValues
android:entries | The human-readable array to present as a list. 相当于展现给用户的下拉列表。 |
android:entryValues | The array to find the value to save for a preference when an entry from entries is selected. 展现的用户的选择列表的每个元素选择后,需要存储到手机中,这里的entryValues就是列表中各个元素被选择后存储到手机中的值。简单的说就是此处是数据库中的值。上面的android:entries是展现给用户的列表的值。 |
两个属性的可选值的xml文件array.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="setting_skintheme">
<item>黑色</item>
<item>蓝色</item>
<item>紫色</item>
</string-array>
<string-array name="setting_skintheme_value">
<item>我是存储的颜色:黑色</item>
<item>我是存储的颜色:蓝色</item>
<item>我是存储的颜色:紫色</item>
</string-array>
</resources>
比如选择蓝色的选项后的数据库中的存储截图如下:
应用程序中界面中显示的截图如下: