【问题标题】:How to save and get back a custom object in Android?如何在 Android 中保存和取回自定义对象?
【发布时间】:2016-08-04 16:13:43
【问题描述】:

这个主题How to save a custom Java Object in Android? 对我的解决方案来说已经足够接近但没有成功。所以我有一个自定义对象,我想将它添加到收藏夹列表中,这意味着我想在应用程序的任何位置(所有活动)中找到我保存的对象。但我不知道如何在我的活动中调用我在另一个活动中创建的共享偏好(收藏列表在哪里),以便在取回 json 之后。

【问题讨论】:

  • 我相信如果您使用默认的..或特定名称..,您可以在不同的活动中访问共享首选项
  • 尝试将您的自定义对象转换为字符串。并通过 PreferencesManager 保存字符串。
  • @LucaZiegler 然后呢?
  • @ValayPatel,我试过没用:/
  • SharedPreferences 首选项 = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());会给你默认的SP。使用 GSON 将您的自定义对象转换为 JSON 字符串并将其存储为字符串。稍后获取字符串并使用 GSON 将其转换为您的自定义对象。

标签: android gson sharedpreferences reload


【解决方案1】:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

会给你默认的SP。使用 GSON 将您的自定义对象转换为 JSON 字符串并将其存储为字符串。稍后获取字符串并使用 GSON 将其转换为您的自定义对象。

在其他班级

SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String myJson= mPrefs.getString("myproduct")

然后使用 toObject 方法将 myJSON 字符串转换为您的对象

【讨论】:

  • 当我的声望达到 15 时,我会投票给你的答案哈哈
【解决方案2】:

遵循关于共享偏好的 android 文档,其中包含有关如何创建可在所有活动中访问的共享偏好的详细信息Android Documentaion on shared preference

【讨论】:

    【解决方案3】:

    您可以使用(Hawk 库)将数据作为键值保存在存储中 - 您可以保存所有数据类型和对象,然后随时检索。 GitHub上的链接Hawk Documentation * 您的数据将在存储中加密

    保存数据

    Hawk.init(context).build();
    Hawk.put("key", "value");
    

    检索数据

    Hawk.init(context).build();
    String s = Hawk.get("key");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多