如何在SharedPreferences中存储堆栈

时间:2016-09-09 22:38:57

标签: android android-sharedpreferences

我一直试图通过putStringSet中的SharedPreferences API将一个堆栈存储在SharedPreferences中。

在write方法中,我这样做: putStringSet(KEY, new LinkedHashSet(stack));

当我读到时,我这样做: getStringSet(KEY, null)Set

我通过使用Collections.reverse(list)转换为列表以及堆栈的所有元素来反转集合中的元素。

当我写入SharedPreferences时,事情很棒,但是当我阅读时,元素的顺序完全搞砸了。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您可以将堆栈元素转换为逗号分隔的String,然后使用putString保存它。

例如,如果您的堆栈包含以下内容:

| "4" |
| "3" |
| "2" |
| "1" |
| "0" |
-------

您应该将其转换为String" 0,1,2,3,4"并将其保存到SharedPreferences

要重建堆栈,请从SharedPreferences获取字符串,用逗号分隔符将其拆分并按顺序推送到堆栈。

答案 1 :(得分:1)

SharedPreferences可能不是最好的解决方案。使用平面文件或数据库可以更好地满足您的需求。话虽如此,您可以通过单独存储值并以编程方式为每个元素生成一个键来实现此目的。