2013-02-10 78 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()中做逻辑。