我有HashMap<Integer, ArrayList<MyTeam>>
,其中类MyTeam
是POJO。每个ArrayList
对象中最多有5个项目。是否可以将此类HashMap
保存到SharedPreferences
?如果没有,另一种选择是什么?我需要在应用关闭时保存这些数据,并在启动时重新加载。
我查看了this回答,但Key和Value属性都是String,我的情况比String数据类型复杂一些。这种方法还能用吗?还有更好的方法吗?
答案 0 :(得分:0)
是否可以将此类HashMap保存到SharedPreferences?
不直接。欢迎您将其转换为JSON并将其保存为字符串首选项。然后,要将其重新加载,您将读入字符串并使用JSON解析器重新构建对象。
This class演示了基本技术,但它保存的是List<Uri>
,而不是HashMap<Integer, ArrayList<MyTeam>>
。我特意使用此示例来演示内置JSONReader
和JSONWriter
类的使用;对于一个真正的应用程序,我会考虑Gson或类似的JSON parsing library。
如果没有,另一种选择是什么?
将其保存到SQLite数据库,可能通过几个表。或者,以您选择的文件格式(例如,JSON,XML)将其保存到某种文件中。