在Android中将自定义对象存储到内部存储的最佳方法是什么?

4
我有一个自定义对象"TimeSheet",它本身包含Calendar、DateFormat和int字段。该应用程序旨在使用多个这些对象,因此我计划将它们存储在List中,并希望该应用程序能够在关闭时将这些对象保存到内部存储器中,在打开时重新加载它们。
当涉及到Android开发时,我仍然是个新手(我只发表过一款应用程序),因此我不确定最佳方法是什么。我猜ObjectInputStream和它的Output对应物可能是最好的选择,但我并不完全确定。我完全愿意改变我的设计策略,以最简单的方式存储这些TimeSheet对象的集合。
是否有人可以建议从这里开始的良好方向,并提供简短、简单的示例呢?
谢谢!
3个回答

6

对于这样的问题,没有一个单一正确的答案。很大程度上取决于您存储的数据量。如果数据不多,可以使用SharedPreferences,如果数据量大且复杂,则使用database。如果数据不多,我不会使用数据库。您希望尽可能保持简单,添加数据库可能会使事情变得复杂。下面是一个讨论不同选项的链接。看看吧。希望能有所帮助:

http://developer.android.com/guide/topics/data/data-storage.html


1
似乎ObjectInputStream和ObjectOutputStream可能是我需要在设备上内部存储数据的解决方案。我存储的数据并不特别庞大,所以我认为现在放弃使用数据库。无论如何,我觉得这有点超出我的能力范围。 - Argus9

4

有两种方法可以做到这一点:

  1. 将其保存在SQLite数据库中。
  2. 以JSON格式将对象保存在文件中。

请参阅此讨论。


2
如果您认为这些问题是重复的,请考虑将它们标记为重复。否则,您应该包含一些来自链接页面的内容(带有归属),以使此答案独立存在。 - Jeffrey Bosboom

0
我真诚地建议使用 SQLiteDatabase 来存储它们:编写函数将您的 3 个字段映射到数据库 (Calendar 将成为 NUMERIC,DateFormat 将成为 String,int 字段将全部成为 NUMERIC),并从数据库中的一行重建您的对象字段。这可能需要一些额外的工作量,但它会使未来的功能扩展更加容易。

你好,能否提供一个关于如何完成这个任务的教程链接?你刚才说的大部分内容我都没听懂。 :) - Argus9
最快的路径是(在这种情况下),http://developer.android.com/guide/topics/data/data-storage.html#db,其中包含更详细示例的链接。 - Femi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接