【问题标题】:Best practice on connecting Activities连接活动的最佳实践
【发布时间】:2011-12-19 22:32:38
【问题描述】:

我正在编写我的第一个 Android 应用,并希望学习良好的编码实践。我有一个 Activity,其中包含应用程序中所有可用数据项的 2 列网格(listActivity)。有一个Activity用来创建一个新的数据项(createActivity),它是从listActivity触发的。现在,当 createActivity 完成时,处理这种情况的最佳方法是:

  • createActivity 应该将新数据项存储在永久存储中,并且只将新创建的项的 ID 返回给 listActivity,还是应该将项的所有数据字段作为 returnIntent 的 putExtras() 返回?
  • listActivity 应该“重新绘制”整个数据视图,还是应该简单地动态附加新创建的数据项?如果 listActivity 还必须处理删除和编辑事件,这个问题的答案会改变吗?如果列表视图不是 2 列网格而是单列列表怎么办?

【问题讨论】:

  • 我对问题标题不满意。请随时提出更好的建议。

标签: android android-activity


【解决方案1】:

createActivity 应该将新数据项存储在永久存储中,并且只将新创建的项的 ID 返回给 listActivity,还是应该将项的所有数据字段作为 returnIntent 的 putExtras() 返回?

这取决于您的listActivity 需要了解有关新项目的信息。通常将数据保存在存储中并仅发回 ID 就足够了 - 根据我对您以下一些问题的回答。您可能还需要一些已执行操作的指示符(创建、编辑或删除)。

listActivity 应该“重新绘制”整个数据视图还是应该简单地动态附加新创建的数据项?

是的,如果基础 Adapters 数据集中的某些内容发生了变化,则很可能需要重新绘制(或者至少在 Adapter 上调用 notifyDataSetChanged())。如果列表中项目的顺序无关紧要,您可以将项目附加到列表中 - 但我仍然建议您将其保存在存储中,然后在您想将其添加到 Adapter 时检索它。这也是为什么您只需要传递 ID 的原因。此外,为了追加,您需要某种方式来了解最后一个列表项是否填充了一列或两列。

如果 listActivity 也必须处理删除和编辑事件,这个问题的答案会改变吗?

编辑功能与创建基本相同(除了在您打开编辑视图时字段具有值)。如果您从列表中删除一个项目,最好重新绘制列表,以免混淆项目的顺序。

如果列表视图不是 2 列网格而是单列列表怎么办?

附加会更容易 - 但没有太大区别。在单列列表中,您可能能够避免在 2 列列表中需要进行一些完全重绘 - 尽管我认为这不会有太大区别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-07
    • 2015-03-25
    • 2023-04-08
    • 1970-01-01
    • 2015-08-03
    • 2012-10-10
    • 2022-07-08
    • 2011-12-26
    相关资源
    最近更新 更多