1

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

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

一些想法

  1. 所以 GetGPSAndTimeActivity 在这里我做了所有的 findViewById、onClickListener、onCreateDialog。那么我应该从 GetGPSAndTimeActivity 扩展吗?
  2. 在 Android 2.3.3 及更低版本中使用 Fragment 等Fragment

我更喜欢选项1。

4

1 回答 1

1

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

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

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

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

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

于 2012-07-12T17:59:03.810 回答