簡體   English   中英

嘗試從片段活動中更新共享首選項

[英]Trying to update shared preference from a Fragment Activity

我正在為我的應用構建自定義鈴聲選擇器。 該類稱為SoundPicker ,它擴展了FragmentActivity 我正在嘗試將選定的鈴聲保存到應用程序的設置文件中。

這是我的代碼:

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

問題是,我得到一個錯誤,指的新字符串我正在嘗試設置- selectedResource

那就是我得到的錯誤:

第二個參數類型錯誤。 找到:“ java.lang.String”,必需:“ java.util.Set”

編輯器中的putStringSet(String,java.util.Set)不能應用於(String,java.lang.String)

我在這里做錯了什么? 謝謝!

請注意,putString和putStringSet是不同的方法,因此請改用putString

editor.putString(“ notifications_new_message”,selectedResource);

您正在嘗試設置字符串,但是putStringSet接受類型為set的第二個參數

使用putString存儲字符串值或創建字符串集並使用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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM