2013-02-10 75 views
0

我的應用程序存儲一個ArrayList的自定義食品對象,它被髮布到主Activity中的ListView。該應用程序的ListView部分完美地工作,但我有一個問題保存和加載這些食物對象和SharedPreferences。StringSets不會保存/加載到/從SharedPreferences

我將這些Food對象保存爲SharedPreferences,方法是將它們的每個屬性保存爲一個String,將它們放入StringSet中,並通過putStringSet函數保存每個對象。當應用程序恢復時,它會讀取SharedPreferences中的每個StringSet,並創建一個帶有讀取屬性的新Food項,然後將每個項添加到ArrayList中。代碼看起來應該可以工作,但不會在會話之間加載數據。任何人都可以幫我弄清楚爲什麼?謝謝!

Code removed 
+0

凡從未實例化foodNamesSet變量。因此,檢查if(foodNamesSet!= null)總是返回false。同樣適用於其他集合。此外,我認爲你應該在onpause而不是onStop()中做邏輯。 – 2013-02-10 03:36:37

+0

@NazarMerza這就是它,謝謝!如果沒有發現任何東西,我不得不將實例化Set as HashSet並更改SharedPrefs訪問行以創建新的HashSet 。發佈這個作爲迴應,我會批准它作爲答案。 – Argus9 2013-02-10 17:16:01

回答

1

您似乎永遠不會實例化foodNamesSet變量。因此,檢查if(foodNamesSet!= null)總是返回false。同樣的事情也適用於其他集合。此外,我認爲你應該在onPause()而不是onStop()中做邏輯。