SharedPreferences getStringSet方法不可用

时间:2016-04-08 17:11:42

标签: android android-sharedpreferences

非常奇怪的问题 - 我使用的是Android开发的最新版本。这是我的代码:

public static final String MY_PREFS_NAME = "MyPrefsFile";

   @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

          final SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();

Set<String> savedCityFare = editor.getStringSet(whatever);

有趣的是,编辑器没有可用的getter方法。我做错了什么?

2 个答案:

答案 0 :(得分:2)

  

有趣的是,没有任何getter方法可用于编辑器

getter方法位于SharedPreferences。只有setter方法在SharedPreferences.Editor上。可以将SharedPreferences.Editor视为构建器样式类,用于创建和执行“事务”以更新共享首选项。

答案 1 :(得分:2)

如果您查看http://developer.android.com/reference/android/content/SharedPreferences.Editor.html处的文档,您会发现SharedPreferences.Editor类只定义了putX()方法。如果您想使用getter,则不需要编辑器,只需要SharedPreferences对象。

SharedPreferences preferences = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
Set<String> savedCityFare = preferences.getStringSet(whatever);

我还建议使用PreferenceManager.getDefaultSharedPreferences()来获取SharedPreferences对象。

只是编辑

在SharedPreferences中添加值: PreferenceManager.getDefaultSharedPreferences(YOUR_CONTEXT).edit().putXXX(YOURKEY,YOURVALUE).commit(); //这将直接为您的SharedPreferences节省价值。

如果要从首选项中获取值: PreferenceManager.getDefaultSharedPreferences(YOUR_CONTEXT).getXXX(YOUR_KEY); //这将返回您存储的值。

如果要在整个应用程序中维护单个SharedPreferences实例,则使用默认首选项。