Pro Android學習筆記(六十) Preferences(4) MultiSelect List Preferen
阿新 • • 發佈:2018-12-21
ListPreference提供單選列表,我們可以通過CheckBoxPreference提供多選列表。此外,Android在3.0後提供MultiSelectListPreference,它的實現和ListPreference相似,不同的是還可以不選擇或者多個選擇。如圖所示。
XML檔案
在複合例子中加入相關的內容,如下。同樣地可以採用@array來對entry和entryvalue進行定義,使用比CheckBox Preference要方便。
...... <PreferenceScreen android:key="multi_select_test" android:title="MultiSelect List Preference" android:summary="Test for Multiselect List Preferences"> <MultiSelectListPreference android:key="fruits" android:title="Select Your Favourite Fruits" android:summary="選擇您喜歡的水果" android:entries="@array/fruit" android:entryValues="@array/fruit_index" android:dialogTitle="水果:" /> </PreferenceScreen> … … |
在裝置中儲存
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
… …
<set name="fruits">
<string>2</string>
<string>0</string>
</set>
… …
</map>
讀出資訊
從儲存檔案中可以看出,資料格式是Set,讀取起來比以往的稍微麻煩一點,程式碼如下:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Set<String>options = prefs.getStringSet("fruits", null);
showInfo("Multi Select: " + options);
String[] fruits = getResources().getStringArray(R.array.fruit);
if(options != null ){
for(String f: options){
showInfo("select " + fruits[Integer.parseInt(f)]);
}
}