2017-10-05 7 views
0

J'ai le code ci-dessous, où j'essaye de faire défiler des valeurs stockées et de l'ajouter comme texte à un TextView. Mon problème est que le troisième objet ne s'imprime pas, alors que les deux premiers le font. En ce moment, je ne sais pas pourquoi le troisième objet n'est pas récupéré, et toute aide pour le découvrir est appréciée.Looping through SharedPreferences using Map

SharedPreferences settings = getSharedPreferences(MySecondActivity.PREFS_NAME, 0); 
int var1, var2, var3; 
var1 = settings.getInt("First key", MySecondActivity.var1); 
var2 = settings.getInt("Second key", MySecondActivity.var2); 
var3 = settings.getInt("Third key", MySecondActivity.var3); 

Map<String, ?> map = settings.getAll(); 
for (Map.Entry<String, ?> entry : map.entrySet()) { 
    TextViewStats.append(entry.getKey() + ": " + entry.getValue().toString() + "\n"); 
} 
+1

montre comment vous stockez les valeurs dans les préférences – crgarridos

+0

Ah ... ce commentaire m'a fait voir mon erreur. J'ai oublié de sauvegarder la dernière valeur: editor.putInt ("First key", var1); editor.putInt ("Deuxième clé", var2); était tout ce que j'avais – Zerato

+0

Heureux qui vous a aidé, pensez à poster une réponse qui aide les autres avec le même problème – crgarridos

Répondre

0

Grâce à crgarridos j'ai réussi à voir mon erreur. C'était en fait assez stupide. J'avais juste oublié de stocker une valeur dans SharedPreferences. Avec ce code dans MySecondActivity, il fonctionne:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putInt("First key", var1); 
    editor.putInt("Second key", var2); 
    editor.putInt("Third key", var3); //<- Hehe... 

    // Commit the edits! 
    editor.commit();