尝试从片段 Activity 更新共享首选项

Trying to update shared preference from a Fragment Activity

我正在为我的应用构建自定义铃声选择器。 class 称为 SoundPicker,它扩展了 FragmentActivity。我想做的是将所选的铃声保存到我的应用程序的设置文件中。

这是我的代码:

String selectedResource = "blablabla";
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = sharedPref.edit();
editor.putStringSet("notifications_new_message", selectedResource);
editor.commit();

问题是我遇到错误,指的是我尝试设置的新字符串 - selectedResource

这是我得到的错误:

Wrong 2nd argument type. Found: 'java.lang.String', required: 'java.util.Set'

putStringSet (String, java.util.Set) in Editor cannot be applied to (String, java.lang.String)

我在这里做错了什么?谢谢!

请注意,putString 和 putStringSet 是不同的方法, 所以改用 putString

editor.putString("notifications_new_message", selectedResource);

您正在尝试设置字符串,但 putStringSet 接受类型为 set

的第二个参数

use putString to store string value or create string set and use putStringSet

//To store string value
String selectedResource = "blablabla";
SharedPreferences sharedPref = 
PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("notifications_new_message", selectedResource);
editor.commit();



//To Store string set
Set<String> hs = ss.getStringSet("set", new HashSet<String>());

String selectedResource = "blablabla";

hs.add(selectedResource);

SharedPreferences sharedPref =         
PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = sharedPref.edit();
editor.putStringSet("notifications_new_message", hs);
editor.commit();