【问题标题】:Android - Parent activity should determine what child activity had called itAndroid - 父活动应确定子活动调用它
【发布时间】:2012-06-10 23:56:25
【问题描述】:

我的项目中有 2 个活动,比如说活动 A 和活动 B。A 和 B 都扩展同一个超类:BaseActivity。
我们知道,在这种情况下,假设如果打开了 Activity A,则调用超类方法 onCreate(),然后是 Activity A 的 onCreate()。

在BaseActivity父类的onCreate()方法中,如何判断哪个子Activity启动了?

【问题讨论】:

    标签: android android-layout android-emulator android-widget android-ndk


    【解决方案1】:

    我会建议一种不同的方法。基本上不做继承。改用合成。请记住,您认为需要扩展的大多数操作实际上只需要对上下文的引用。活动从上下文延伸。所以实际上,您可以在任何引用活动上下文的类中提供大多数基本功能。完全不需要继承。

    因此,如果您想在 ActivityA 和 ActivityB 之间共享某些功能,只需将其放在 HelperC 中

    HelperC.someOperation(Context c, otherParams)

    HelperC 可以做一些基本活动可以做的任何事情。最终,基本活动将永远不会存在。它将始终是实例化版本 A 或 B

    【讨论】:

    • 另外,请在 Google 上研究组合与继承,了解组合的优势。它真的有一个与是一个关系。例如 is-a-doctor vs. is-a-person that has-a-doctor-role。 has-a 更加灵活和动态。
    【解决方案2】:

    我认为你不应该这样做。 据我记得扩展的想法,超类方法应该只包含通用代码。将不同的代码放在子类中会更容易,而且我认为更合适。

    你可以在parent onCreate()中初始化一些值,然后在childs'中重新设置。

    【讨论】:

      猜你喜欢
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多