如何在 Android 应用程序中 save/store 对象的多维列表?

How to save/store multi dimensional list of objects in an Android Application?

如果有人能想出更好的方式来问这个问题,那就太好了,因为我不确定如何最好地总结它。

在我的应用程序中,我目前有 3 种类型的 class。 A、B 和 C。None 将在应用程序首次启动时存在,并且随着用户创建它们,随着时间的推移会产生更多 classes。它们也可以根据用户的选择进行删除和编辑。

保存这些 class 实例的最佳方法是什么?

我当前的方法是将对象 A 的主要列表保存在扩展应用程序 class 中,然后将序列化列表对象保存为 SharedPreference 或保存在数据库中。然后 load/save 每当应用程序重新启动或暂停等时它都会启动。这是个好主意吗?

我知道如何在基础水平上使用 SQL on android,如果不是存在多个维度,我会使用它。有没有办法让它与数据库一起工作?

如有任何其他建议,我们将不胜感激。谢谢。

在我们的一个生产应用程序中,我们使用 Cupboard。它使用起来非常简单,可以满足您的大部分需求。在抽象出 SQL 和其他混乱方面做得很好。不是 "answer" 而是一个建议。 :)

这让我尖叫数据库。它具有多层的事实使其对于数据库比对于共享首选项更好。这就是 SQL 和关系数据库的用途 - 描述数据之间的关系和层次结构。

你想要的是一个有 5 个表的数据库

TableA 包含所有 tableAs。 TableB 包含所有的 tableB。 TableC 包含所有的 tableCs

TableABMap 有 2 列 parentID 和 childID。 parentID 是映射到表 A 中的一行的外键。 childID 是映射到表 B 中的一行的外键。如果您是关于订单的,请添加第 3 列(订单)。

TableBCMap 的工作原理相同,但用于表 B 和 C。

要获取 A 中的所有 B,您只需执行一个简单的子查询 "SELECT * from TableB WHERE id in (SELECT childid from TableABMap where parentid= object_a_you_want)"

我认为您应该为此学习一些 SQL。如果您只了解基础知识,它就是一个非常强大的工具。我的建议是不要躲在图书馆后面并使用它来完成工作——你需要真正理解这类东西才能有效地使用它。

您可以尝试 green-dao ORM。您描述的关系可以很容易地用它来实现。不需要 SQL 知识。