情况是这样的:我使用具有一些标准功能(如标准菜单生成器)的“BaseClass”,所有其他 Activity “扩展”它以获得相同的菜单和其他内容:

public class Base extends Activity {

//some stuff

}

然后
public class MainActivity extends Base {

//some other stuff

}

public class AdditionalActivity extends Base {

//some other stuff x2

}

// etc.

当我想要在 Preferences Activity 中使用相同的功能时,当类必须“扩展” PreferenceActivity 而不是标准的时,就会出现问题。我该如何更好地处理它?我读过“实现与扩展”行为和类似的东西,但我在 OOP 方面不太有经验来处理它并找到最佳解决方案。从 Base 到 Prefs 类的 C&P 内容,扩展 PreferenceActivity 似乎解决了问题,但肯定是最糟糕的解决方案。

提前感谢你的帮助!

最佳答案

您可能想要创建一个 PreferenceBaseActivity 类,它扩展 PreferencesActivity 。从这里,您有几个选择:

  • 或者从 BaseActivity 重新实现相同的方法(不是最优的)。
  • BaseActivity 中的方法提取到 ActivityHelper 类中,并使 BaseActivityPreferencesBaseActivity 都包含对帮助程序的引用。通过这种方式,您可以将基础 Activity 的工作委托(delegate)给 ActivityHelper
  • 关于java - 我如何使用 "extend"类在 Android 中创建 "base"PreferenceActivity 类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6507975/

    10-10 01:42