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

Hap*_*Hap 10 android sharedpreferences listpreference

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

当我用...

    SharedPreferences preferences = getSharedPreferences("user_preferences.xml", 0);    
    String mapTypeString = preferences.getString("map_type_pref_key", "DEFAULT");
Run Code Online (Sandbox Code Playgroud)

... mapTypeString始终为"DEFAULT".

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

非常感谢!

lig*_*igi 13

将您的代码更改为:

 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);   
 String mapTypeString = preferences.getString("map_type_pref_key", "DEFAULT");
Run Code Online (Sandbox Code Playgroud)

  • 这很有效,谢谢.但我仍然有点困惑...我使用另一个xml,它也存储同一个Activity中的首选项.为什么getDefaultSharedPreferences给我user_preferences.xml而不是另一个settings.xml? (5认同)