2016-04-28 69 views
0

我有一个HashMap<Integer, ArrayList<MyTeam>>其中类MyTeam是一个POJO。每个ArrayList对象中最多有5个项目。是否可以将这种HashMap保存到SharedPreferences?如果不是,另一种选择是什么?我需要在关闭应用程序时保存这些数据,并在启动时重新加载。是否有可能将值作为ArrayList存储在SharedPreferences中?

我看过this答案,但Key和Value属性都是String,而且我的情况比String数据类型稍微复杂一些。这种方法仍然有效吗?有没有更好的办法?

+0

将其转换成JSON对象,然后将其保存到sharedpreferences –

+0

您可以尝试使用** Set **,checkout [here](http://stackoverflow.com/a/7057858/4790490) – Hearty

回答

0

是否有可能将这种HashMap保存为SharedPreferences?

不直接。欢迎您将其转换为JSON并将其保存为字符串首选项。然后,为了重新加载它,您需要读取字符串并使用JSON解析器重新构建对象。

This class演示的基本技术,虽然它节省了List<Uri>,而不是HashMap<Integer, ArrayList<MyTeam>>。我特别使用这个示例来演示内置的JSONReaderJSONWriter类的使用;对于真正的应用程序,我会考虑Gson或类似的JSON parsing library

如果不是,那么另一种选择是什么?

将它保存到SQLite数据库,可能通过几个表。或者,以您选择的文件格式(例如JSON,XML)将其保存到某种文件中。

相关问题