如何在SharedPreferences中存储一个ArrayList<HashMap<String, String>>?

3
我该如何在安卓中的共享偏好设置中存储哈希映射的数组列表?任何帮助将不胜感激。

1
你不能这样做。你只能存储基本类型。可以选择使用sqlite。 - Andro Selva
3个回答

4
在API 11之后,Shared Preferences接受包含嵌入其中的HashMaps的ArrayList等集合。
请参阅以下链接,详细了解如何将ArrayList保存到Shared Preferences中:
将ArrayList保存到SharedPreferences
这将解决您的问题。
P.S:Shared Preferences的唯一目的是保存不太频繁访问且不太大(例如应用程序设置)的值。因此,如果您具有大小较大且与应用程序设置无关的数据集,则应选择适当的SQLite数据库。
编辑:
存储ArrayList中的数据的其他选项是使用适当的SQLite数据库
以下链接包含有关从SQLite数据库中存储和检索ArrayList的代码和信息:在Android中将ArrayList存储到SQLite数据库中
我希望这解决了您的问题。

谢谢您的回复。请问除了共享首选项之外,是否有其他存储选项可以解决这个问题? - Kirthiga

0
通常我会将Map转换为JSON字符串并保存。很容易转换回HashMap,效果非常好。
请查看KayKay在thread中的答案,其中包含一些示例代码。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接