如何以灵活的方式将数据保存到共享首选项

时间:2018-01-24 00:05:10

标签: android sharedpreferences

我将所选项目保存到共享首选项中,但是在运行时期间用户可以删除任何这些项目(从任何位置),并且当我使用保存的大小(在下面的代码中)循环遍历项目时,这是问题

说我有5件物品(item_1 - item_2 - item_3 - item_4 - item_5)

如果用户删除了item_2,我将chosen_items_size更新为4,并从共享首选项中删除item_2。

但是当我稍后加载项目时,我使用(size =现在为4),如下面的代码中将错过item_5,如何解决这个问题,任何建议或更好的方法来实现我的需求?

    mSharedPreference = getSharedPreferences("chosen_items", MODE_PRIVATE);
    int size = mSharedPreference.getInt("chosen_items_size", 0);
    for(int i = 1; i <= size; i++) {

       mSharedPreference.getString("item_" + i, null);

    }

知道我想要启用拖放项目,使用上述方法将使得它很难完成(如果可能的话首先),任何更好的方法来保存&amp;检索数据/项目?

谢谢

2 个答案:

答案 0 :(得分:3)

如果您有少量字符串,则可以将它们存储在SharedPreferences中的一个分隔字符串中,例如so。您还可以将一些元数据与每个项目相关联,并将其划分。

答案 1 :(得分:2)

您可以使用内置的SQL lite数据库 这些数据必须在会话之间持续存在吗?如果没有在本地存储类和静态变量/数组。