[英]How do I “extend” PreferenceActivity class in Android with my “base” class?
情况是这样的:我正在使用具有一些标准功能(如标准菜单生成器)的“BaseClass”以及所有其他活动“扩展”它以获得相同的菜单和其他内容:
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 活动中的相同功能时出现问题,当 class 必须“扩展” PreferenceActivity 而不是标准活动时。 我该如何更好地处理它? 我已经阅读了有关“实现与扩展”行为之类的内容,但我在 OOP 中没有足够的经验来处理这个问题并找到最佳解决方案。 从 Base 到 Prefs class 的 C&P-ing 东西,它扩展了 PreferenceActivity 似乎可以解决问题,但肯定是最糟糕的解决方案。
提前感谢你的帮助!
您可能想要创建一个PreferenceBaseActivity
class,它扩展了PreferencesActivity
。 从这里,您有几个选择:
BaseActivity
重新实现相同的方法(不是最佳的)。ActivityHelper
BaseActivity
,并使您的BaseActivity
和PreferencesBaseActivity
都包含对帮助程序的引用。 这样您就可以将您的工作从您的基本活动委托给ActivityHelper
。 考虑将您的可重用方法放在帮助程序 class 中,并向Base
和Prefs
添加一个实例:
public class Base extends Activity { // same with Prefs
private Helper helper;
public Base() {
// .. super calls, etc
this.helper = new Helper(this);
}
}
public class Helper {
private Activity parent;
public Helper(Activity parent) {
this.parent = parent;
}
// your methods. If you need to call methods from Activity, use
// the parent reference
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.