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中。