为什么preferences.getString(“key”,“DEFAULT”)总是返回“DEFAULT”?

时间:2012-03-06 16:30:05

标签: android sharedpreferences listpreference

我的xml目录中有user_preferences.xml。 PreferencesActivity使用此文件来创建用户首选项活动..这样可行。用户在此处选择的内容仍然存在。但我无法检索用户选择的值。

当我使用...

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

... mapTypeString始终为“DEFAULT”。

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

非常感谢!

2 个答案:

答案 0 :(得分:13)

将您的代码更改为:

 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);   
 String mapTypeString = preferences.getString("map_type_pref_key", "DEFAULT");

答案 1 :(得分:0)

编辑后必须提交首选项。

SharedPreferences preferences = getSharedPreferences("user_preferences.xml", 0);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("map_type_pref_key", "blah_blah");
editor.commit();