Android 在使用继承或片段之间选择设计

Android 在使用继承或片段之间选择设计,android,Android,我正在使用我们的mCruiseOn平台开发一个拼车应用程序。我有两个活动需要编码,两个活动都有90%相同的代码/流程和功能。我可以创建一个布局xml并将其包含在我的两个布局中,但是如何管理它的代码部分呢。这样做的目的是不复制代码,但同时保持代码的干净性和可管理性 我需要公共代码来管理findViewById、setOnClickListener和onClick方法。例如,这两个活动都采用gps中的开始和结束位置。两个活动都有一个时间/日期对话框按钮 一些想法 所以GetGPSAndTimeAct

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

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

一些想法

  • 所以GetGPSAndTimeActivity,我在这里执行所有findViewById、onClickListener和onCreateDialog。那么我应该从GetGPSAndTimeActivity扩展吗
  • 使用类似于

  • 我更喜欢选项1。

    这取决于你的情况。假设你有一个活动A做一些事情,活动B做完全相同的事情,比如A,但是更多一些(比如添加一些按钮)

    在这种情况下,您可以让活动B扩展活动A。 B只是补充了缺失的东西

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

    至于是否使用碎片,我会去做。从长远来看,支持平板电脑/多种屏幕尺寸的问题会少一些,而且您可以在不同的环境中轻松地重复使用它们

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

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

    在这种情况下,您可以让活动B扩展活动A。 B只是补充了缺失的东西

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

    至于是否使用碎片,我会去做。从长远来看,支持平板电脑/多种屏幕尺寸的问题会少一些,而且您可以在不同的环境中轻松地重复使用它们

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