android:使用ListPreference和检索键字符串

android:使用ListPreference和检索键字符串,android,android-preferences,Android,Android Preferences,我有一个弹出的设置菜单,其中有一个ListPreference类型菜单。它与settings.xml文件关联,其中包含“数组字符串”。这一切都很好,但我不知道如何检索用户偏好 例如,假设用户选择一种颜色(红色、绿色或蓝色)。我在“数组字符串”中创建的列表包含文本红色、绿色和蓝色。在我的代码中,如果用户选择了红色,我想做一些事情,如果他们选择了蓝色,我想做一些其他事情,等等。我会使用“case”语句还是“if”语句?最重要的是,我将如何检索用户的首选项-密钥?(我在检查布尔值吗?如果列表显示在对话

我有一个弹出的设置菜单,其中有一个ListPreference类型菜单。它与settings.xml文件关联,其中包含“数组字符串”。这一切都很好,但我不知道如何检索用户偏好


例如,假设用户选择一种颜色(红色、绿色或蓝色)。我在“数组字符串”中创建的列表包含文本红色、绿色和蓝色。在我的代码中,如果用户选择了红色,我想做一些事情,如果他们选择了蓝色,我想做一些其他事情,等等。我会使用“case”语句还是“if”语句?最重要的是,我将如何检索用户的首选项-密钥?(我在检查布尔值吗?

如果列表显示在对话框中,则需要指定一个onClick侦听器,该侦听器将调用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}}}; 

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

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

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

如果您想获得帮助,我想您需要更具体一些。你在使用Android的首选项库吗?或者你只是弹出一个显示颜色列表的对话框?是的,我正在使用androids首选项库。在你们的帮助下,我得到了它——伙计们,我非常感谢你们——你们抽出时间来帮助我们初学者!谢谢堆栈溢出!!!