0

Je suis en train de créer un sélecteur de sonnerie personnalisé pour mon application. La classe est appelée SoundPicker et s'étend à FragmentActivity. Ce que j'essaie de faire est de sauvegarder la sonnerie sélectionnée dans le fichier de paramètres de mon application.Tentative de mise à jour des préférences partagées à partir d'une activité de fragmentation

Voici mon code:

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

Le problème est que je reçois une erreur, se référant à la nouvelle chaîne que je suis en train de mettre - selectedResource

C'est l'erreur que je reçois:

Mauvais 2ème type d'argument. Trouvé: 'java.lang.String', nécessaire: 'java.util.Set'

putStringSet (String, java.util.Set) dans Editor ne peut pas être appliquée à (String, java.lang.String)

Qu'est-ce que je fais mal ici? Je vous remercie!

Répondre

4

S'il vous plaît soyez prudent, PutString et putStringSet est différente méthode, utiliser de manière PutString à la place

editor.putString ("notifications_new_message", selectedResource);

+0

Comment n'ai-je pas remarqué cela? J'ai juste perdu une heure entière à essayer de comprendre ce qui se passe ici: facepalm: – morha13

+0

Vous pourriez avoir besoin de repos haha –

2

Vous essayez de définir la chaîne, mais putStringSet accepter 2ème argument de type mis

utilisation PutString à la valeur de chaîne de magasin ou créer chaîne définir et utiliser 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();