2016-04-28 67 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)將其保存到某種文件中。

相關問題