【问题标题】:Android - Save preferences per objectAndroid - 保存每个对象的首选项
【发布时间】:2013-04-09 04:09:11
【问题描述】:

有没有办法保存每个复杂对象的首选项?
我有一个动态的对象列表,每个对象包含 3 个字符串和 2 个布尔值对的动态列表。有什么办法可以保存这些对象,比如首选项?

【问题讨论】:

  • 你考虑过什么?请参阅有关存储选项的 Android 文档。
  • 我做了类似的事情,将 JSON 转换为字符串,然后存储在 prefs 中。
  • 我只是问是否可以在 android 中保存每个对象的首选项

标签: android preferences


【解决方案1】:

您可以选择将复杂对象序列化为文件。然后反序列化以从文件中重新创建对象。这与保存到 SharedPreferences 没有太大区别。

您可以在此处参考代码。 https://stackoverflow.com/a/5816861/2107118

注意:一定要让你的复杂对象实现 Serializable 接口并提供一个 serialVersionUID。

【讨论】:

  • 我不知道我有多少对象(用户决定)
  • 这应该不是问题。你只需要给文件一个唯一的名字。它几乎类似于带键的 SharedPreferences.edit().put 方法。在这种情况下,键是文件名。
  • 有什么办法可以使用 SharedPreferences 代替 Serialize 吗?
  • SharedPreferences 不支持复杂对象。您可以尝试将对象转换为 JSON 或 XML,然后将其作为字符串放入首选项中。但这就是序列化正在为您做的事情。
  • 但是 SharedPreferences 怎么知道同名的属性属于不同的对象呢?
猜你喜欢
  • 2018-02-06
  • 2012-10-27
  • 1970-01-01
  • 2017-12-02
  • 2012-03-29
  • 1970-01-01
  • 2017-11-03
  • 2014-12-01
  • 2019-11-27
相关资源
最近更新 更多