android:使用ListPreference并检索密钥字符串

时间:2010-03-23 14:03:41

标签: android android-preferences

我弹出一个设置菜单,其中是一个ListPreference类型菜单。它与settings.xml文件相关联,其中包含“array-strings”。这一切都很好,但我不知道如何检索用户偏好。

例如,假设用户选择一种颜色(红色,绿色或蓝色)。我在'array-strings'中创建的列表包含红色,绿色和蓝色文本。在我的代码中,我想做一些事情,如果用户选择了红色,其他东西,如果他们选择蓝色等,等等。我会使用“案例”陈述或“如果”陈述?最重要的是,我如何检索用户偏好 - 关键? (我在检查布尔值吗?)

2 个答案:

答案 0 :(得分:5)

如果您正在使用ListPreference并且尚未禁用持久状态,则可在设置完成后从SharedPreferences中读取所选值。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.getString(yourkey, "defvalue");

您也可以订阅onClick事件,并使用上面提到的代码Rpond。

答案 1 :(得分:2)

如果您的列表显示在Dialog中,那么您需要指定一个OnClickListener,它将调用onClick方法。请查看以下示例。在示例中,传递给onClick的索引是数组中项的索引。

new AlertDialog.Builder(this).setTitle("Settings").setItems(R.array.colors, new DialogInterface.onClickListener() { void onClick(DialogInterface d, int index) {
switch(index) {
CASE 0: // do something
CASE 1: // do something else}}};