11

我的 XML 目录中有 user_preferences.xml。A PreferencesActivity 使用此文件来创建用户首选项活动.. 并且有效。用户在此处选择的任何内容都将持续存在。但我无法检索用户选择的值。

当我使用...

SharedPreferences preferences = getSharedPreferences("user_preferences.xml", 0);    
String mapTypeString = preferences.getString("map_type_pref_key", "DEFAULT");

... mapTypeString 始终为“DEFAULT”。

当我实例化我的 SharedPreferences 对象时,似乎找不到我的 user_preferences.xml。但是,PreferencesActivity 当然会找到它。那么,我错过了什么?

非常感谢!

4

2 回答 2

17

将您的代码更改为:

 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);   
 String mapTypeString = preferences.getString("map_type_pref_key", "DEFAULT");
于 2012-03-06T16:58:39.027 回答
2

您必须在编辑后提交首选项。

SharedPreferences preferences = getSharedPreferences("user_preferences.xml", 0);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("map_type_pref_key", "blah_blah");
editor.commit();
于 2014-08-01T07:05:06.560 回答