【问题标题】:Save custom object array to Shared Preferences将自定义对象数组保存到共享首选项
【发布时间】:2014-01-16 03:26:47
【问题描述】:

我可以将我自己的对象数组保存到 SharedPreferences 中吗,如下面的帖子所示?

Android ArrayList of custom objects - Save to SharedPreferences - Serializable?

但是他没有保存数组,那么是否有可能像链接帖子中那样将自定义对象数组保存到 SharedPreferences?

【问题讨论】:

    标签: android arrays object sharedpreferences


    【解决方案1】:

    您可以使用 gson 序列化类对象并将它们存储到 SharedPreferences 中。你可以从这里下载这个罐子https://code.google.com/p/google-gson/downloads/list

    SharedPreferences  mPrefs = getPreferences(Context.MODE_PRIVATE);
    

    保存:

    Editor prefsEditor = mPrefs.edit();
    Gson gson = new Gson();
    String json = gson.toJson(MyObject);
    prefsEditor.putString("MyObject", json);
    prefsEditor.commit();
    

    检索:

    Gson gson = new Gson();
    String json = mPrefs.getString("MyObject", "");
    MyObject obj = gson.fromJson(json, MyObject.class);
    

    【讨论】:

    • 非常感谢,但是我如何使用我自己的对象数组来做到这一点?
    • 看看这个答案:stackoverflow.com/a/9198626/2333395 它使用 ArrayList,但不应该很难修改以用于常规数组
    • 将该数组放入另一个实现可序列化的对象中,并在 onPause 和 OnResume 中使用上述代码
    • 如何将模型类对象保存在 arraylist 中,然后将 araylist 保存在 sharedpreferences 中,同样从 sharedpreferences @OrBar 获取 araylist
    • 如果有人还在看这个线程,我有一个问题:如果你修改对象的类(如添加变量等)会发生什么,它是否仍然能够反序列化旧对象并将将其数据放入新的?
    猜你喜欢
    • 2013-10-18
    • 2017-08-19
    • 1970-01-01
    • 2018-02-06
    • 2013-09-20
    • 2017-01-22
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    相关资源
    最近更新 更多