我正在开发一个 Android 应用程序,该应用程序当前有两个 Activity A 和 B,它们有一些共同的代码、它们的选项菜单和一些其他代码。为了减少复制和粘贴,我创建了一个名为 BaseActivity 的类,它使用 扩展 Activity,然后让 A 和 B 扩展 BaseActivity。至少那是我想做的,但我遇到了问题。虽然 A 现在很好地扩展了 BaseActivity,但我不知道如何让 B 扩展 BaseActivity,因为它不仅仅是一个 Activity,它还是一个 MapActivity。所以它的继承树看起来像这样:
MapActivity继承树:
java.lang.Object
android.content.Context
android.content.ContextWrapper
android.view.ContextThemeWrapper
android.app.Activity
com.google.android.maps.MapActivity
但是为了让它继承我的代码,我需要使它看起来像这样:
java.lang.Object
android.content.Context
android.content.ContextWrapper
android.view.ContextThemeWrapper
android.app.Activity
mypackage.BaseActivity
com.google.android.maps.MapActivity
有什么方法可以将我的自定义类插入继承树中吗?
最佳答案
不,你不能。很难准确地说出最好的方法是什么,但我至少会尝试使用组合而不是继承。您可以实现一个单独的非 Activity 对象并使用 A 和 B 中的其中一个吗?
关于java - 有没有办法在现有的继承树中插入自定义类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7194511/