2013-07-24 51 views
4

我需要保存一組複雜的preferences,本質上和HashMap包含其他hashmaps的數組作爲其鍵的值。將複雜結構保存爲共享首選項

如何將其保存到preferences,或者我應該以另一種方式保存preferences?我應該爲首選項創建一個對象並將其序列化爲一個文件?如果是這樣,請怎麼做?

回答

0

SharedPreferences只將鍵值存儲在鍵/值對中。因此,我不認爲這是存儲HashMapArray s的HashMap s的最佳方式 - 也就是說,除非數據可以按照有意義的方式展平(如果您使用的是多個HashMap那麼這些數據真的是關鍵值對嗎?是否有辦法將這些數據存儲爲常規鍵值對?)。

如果數據結構真的很複雜,則需要查看其他存儲選項。根據長度的不同,我可能會使用SQLite數據庫。它很容易設置,可以在應用程序的任何位置訪問,像存儲的偏好一樣持久,速度也很快。

0

如果你有一個複雜的數據結構,並且你想將它存儲在共享的首選項中,那麼你可以考慮爲你的對象創建一個to_json()方法。 然後當然是一個from_json(String json)方法。

+0

我不推薦這種方法。序列化複雜結構時,Android的內置json庫會中斷。最好的方法是使用Serialization接口將一個類實例序列化爲文件。 – RunLoop