【问题标题】:passing custom objects or just ids传递自定义对象或只是 id
【发布时间】:2012-09-30 19:40:51
【问题描述】:

我有一个 sqllite 数据库,我在其中存储一些带有图片的数据。

在我的 MainActivity 中,我将此数据加载到 List 并使用带有 ListView 的 ArrayAdapter 来显示此信息。单击项目时,我将项目 ID 传递给 DetailActivity,然后我再次从 sqllite 数据库请求项目数据以显示它。

我很担心,因为我不知道在 android 上最好的方法是什么。

我应该在 MainActivity 中使用更少的信息(只有 id、标题和图片)并将 ID 传递给 DetailActivity 还是应该通过我的 DetailActivity 传递完整的 CustomObject(这样我就不必再次访问数据库)

我想要内存使用和性能的正确组合。

【问题讨论】:

    标签: android database performance memory


    【解决方案1】:

    我认为您正在使用全局列表假设您有 2 个活动 listactivity 显示您的列表视图和 detailactivity 显示详细信息现在您创建另一个名为 mBaseActivity 的活动这里是您的全局列表。

    现在 listactivity 和 detailactivity 都被 mBSeActivity 继承了。

    在列表活动中,您可以填写全局列表并使用您可以转到详细信息活动的位置单击项目在这里您再次使用此全局列表并获取其数据并显示它。

    【讨论】:

      【解决方案2】:

      至于显示数据,我可以建议使用SimpleCursorAdapter 吗? 就数据效率而言,如果您已经为您的 listView 创建了自定义对象,您也可以传递它,您不仅应该在单击项目的延迟可能会导致数据不一致的情况下,在这种情况下您应该进行另一个查询以确保用户总是看到最新的数据。 另外,如果您一心追求效率,您不应该再次下载数据,而只在必要时更新/删除数据,这样可以确保您的用户不必等待太长时间才能执行另一项任务,并使您的程序更有效率

      【讨论】:

      • 为了显示数据,我刚刚编写了一个使用自定义列表布局的自定义适配器。数据库只能由用户访问,所以不能有不一致的地方。我考虑过修改我的自定义对象类来实现 parcelable 接口,这样我就可以将 customkbjects 放到其他视图中。
      • 创建 listView 也可以使用光标适配器来实现。如果您想传递带有意图的自定义对象,您应该确保它是可序列化的。
      • 使用光标适配器有什么好处?
      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多