SharedPreferences getStringSet 方法不可用

SharedPreferences getStringSet method not available

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

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);

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

Funny part is none of the getter methods are available for editor

getter 方法在 SharedPreferences 上。只有 setter 方法在 SharedPreferences.Editor 上。将 SharedPreferences.Editor 视为构建器样式 class,用于创建和执行 "transaction" 以更新共享首选项。

如果您查看 http://developer.android.com/reference/android/content/SharedPreferences.Editor.html 上的文档,您会发现 SharedPreferences.Editor class 仅定义了 putX() 方法。如果您想使用吸气剂,则不需要编辑器,而只需要一个 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 的单个实例时,使用默认首选项。