【问题标题】:Choice of design between using Inheritance or Fragments使用继承或片段之间的设计选择
【发布时间】:2012-07-13 01:59:03
【问题描述】:

我正在使用我们的 mCruiseOn 平台开发拼车应用程序。我有 2 个需要编码的活动,这两个活动都有 90% 的相同代码/流程和功能。我可以创建一个布局 xml 并将其包含在我的两个布局中,但我如何管理它的代码部分。目的是不重复代码,但要保持干净和可管理。

我需要通用代码来管理 findViewById、setOnClickListener 和 onClick 方法。例如,这两个活动都采用 GPS 中的开始和结束位置。两个活动都有一个时间/日期对话框按钮。

一些想法

  1. 所以 GetGPSAndTimeActivity 我在其中执行所有 findViewById、onClickListener、onCreateDialog。那我应该从 GetGPSAndTimeActivity 扩展吗?
  2. 使用像Fragment in Android 2.3.3 and lesser这样的片段

我更喜欢选项 1。

【问题讨论】:

    标签: android


    【解决方案1】:

    这取决于你的情况。假设您有一个 Activity A 可以做一些事情,还有一个 Activity B 可以做与 A 完全相同的事情,但更多一点(比如添加几个按钮)。

    在这种情况下,您可以让 Activity B 扩展您的 Activity A。 B 只是添加缺少的内容。

    如果活动 A 和 B 有很多共同点,但如果也有细微差别,准确地说:如果活动 A 包含 B 不需要的代码,则应该为活动 A 和活动创建一个抽象基类 C B 其中仅包含公共代码子集。让 A 和 B 扩展 C 并将它们各自的额外代码添加到 A 和 B。

    至于是否使用 Fragments:我愿意。从长远来看,您在支持平板电脑/多种屏幕尺寸方面的麻烦会更少,并且您可以轻松地在不同的环境中重复使用它们。

    假设您的老板/客户突然想要我们从 Google Play 知道的精美 ViewPager 功能(左右滑动屏幕以切换类别)。如果您首先使用 Fragments,则可以非常轻松快速地完成此更改。 如果您改用活动,则需要重新安排大量代码。

    【讨论】:

      猜你喜欢
      • 2022-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多