2017-10-05 70 views
0

我有下面显示的代码,其中我试图循环访问一些存储的值并将其作为文本添加到TextView。我的问题是,第三个对象没有打印,而前两个。现在,我不知道为什么没有检索到第三个对象,并且有兴趣了解它的任何帮助。使用映射循环访问SharedPreferences

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

告诉你如何存储的值到喜好 – crgarridos

+0

啊......这个评论让我看到了我的错误。我忘记了保存上一个值:editor.putInt(“First key”,var1); editor.putInt(“Second key”,var2);是我所有的 – Zerato

+0

很高兴帮助你,考虑发布一个帮助其他同样问题的答案 – crgarridos

回答

0

感谢crgarridos我设法看到我的错误。这实际上是一个非常愚蠢的。我刚刚忘记了将值存储到SharedPreferences中。有了这个代码MySecondActivity,这是工作:

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