ListPreference是Android中的一個Preference,用于在設置界面中顯示一個可選擇的列表供用戶選擇。它繼承自DialogPreference,可以在用戶點擊時彈出一個對話框,顯示可選擇的選項,并將用戶選擇的值保存到SharedPreferences中。
使用ListPreference的步驟如下:
<ListPreference
android:key="list_preference"
android:title="List Preference"
android:summary="Choose an option"
android:entries="@array/list_entries"
android:entryValues="@array/list_entry_values"
android:defaultValue="default_value" />
上述代碼中的key屬性用于唯一標識該Preference,在代碼中獲取和修改該Preference的值時需要用到。title屬性為列表的標題,summary屬性為列表的描述信息。
entries屬性為列表顯示的選項,在strings.xml文件中定義一個數組,用于存放顯示的選項內容。entryValues屬性為選項對應的值,在strings.xml文件中定義一個數組,用于存放選項的值。
defaultValue屬性為默認的選項值。
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
在SettingsActivity的onCreate方法中調用addPreferencesFromResource方法,將preferences.xml文件中定義的Preference添加到設置界面中。
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
String value = sharedPrefs.getString("list_preference", "default_value");
通過PreferenceManager.getDefaultSharedPreferences方法獲取SharedPreferences對象,然后使用getString方法獲取ListPreference的值。第一個參數為Preference的key,第二個參數為默認值。
通過SharedPreferences.Editor對象的putString方法可以修改ListPreference的值:
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putString("list_preference", "new_value");
editor.apply();
首先獲得SharedPreferences.Editor對象,然后使用putString方法修改ListPreference的值,最后調用apply方法保存修改。
以上就是ListPreference的基本用法。使用ListPreference可以方便地在設置界面中提供一個可選擇的列表供用戶選擇,并將用戶的選擇值保存到SharedPreferences中。