【问题标题】:Android: What data structure to use to save app's dataAndroid:使用什么数据结构来保存应用程序的数据
【发布时间】:2016-06-14 19:06:33
【问题描述】:

所以我有一个简单的 android 应用程序,它是这样的:它有一个汽车制造商列表,如本田、福特、马自达等。 然后选择其中一个制造商时,我需要显示他们的汽车模型。因此,如果用户选择本田,我会显示“Civic、CRV、Odyssey”等。 当用户选择特定型号时,我会显示另一个包含更多信息的列表。 那么什么样的数据结构会在我的安卓应用中简单易行。我正在考虑使用嵌套的 ArrayLists。 另外,您能否提供一个示例的链接,说明如何使用 android studio 在内部保存数据并在需要时获取数据。

注意:列表是动态的,这意味着用户可以选择从任何列表中添加或删除任何项目。

谢谢:)

【问题讨论】:

  • 你考虑过简单的 sqlite 方法吗?如果是这样,它有什么问题?
  • 有人告诉我这件事,但我没有任何与 SQL 相关的经验;所以我认为这将非常耗时且难以学习,所以我想知道是否有任何更简单的解决方案可用。如果没有,那我会考虑sql。

标签: java android data-structures


【解决方案1】:

这实际上就是数据库的用途(当然我在这里谈论的是 SQLite)。我假设您将拥有大量以某种方式相互关联的数据。

我不知道你对数据库设计的了解程度,但你应该有一个名为 Manufacturer 的表来保存这些数据(想想你要保存哪些数据,从而创建适当的列表)和一个名为 CarModel 的表,该表将有一个将其连接到制造商的外键(称为manufacturer_id)。这两张表需要有Many-To-One关系 -> 每个厂家可以有Many型号,但每个型号只能由One生产> 制造商。

这只是一个基本的想法,您仍然可以根据自己的喜好进行改进,但这应该涵盖您要求的所有内容非常容易。例如,要获取制造商列表,您只需 Select * from Manufacturer。当您单击特定制造商并想要显示其模型时,您只需编写一个非常简单的查询Select * from CarModel where manufacturer_id = id(id 是您传递给某个函数的参数,您想要模型的制造商的id。模型您选择可以包含任意数量的数据,例如有关该模型的附加信息。

如果您不擅长原始查询,可以使用有用的query builder,它可以让您的生活变得更轻松。

【讨论】:

【解决方案2】:

我认为在 Android 中实现数据的大多数方法都是基于 SQLite。如果您没有足够的经验,我强烈建议您与内容提供商一起研究以下教程:

您说得对,因为这种方法需要使用简单的字符串指定整个数据库方案,所以非常耗时(即使对于有经验的开发人员也是如此)。但是您可以使用一些 ORM 解决方案,例如 ORMLite,但它仍然需要调查。

此外,我会推荐 Realm,它的实现要简单得多,但在我看来,它有许多您应该考虑的特性(例如多线程工作)

希望,它会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多