【发布时间】:2011-02-01 18:52:53
【问题描述】:
在我的应用程序中有 14 个活动。在这 9 个活动中,包含自定义标题栏和选项卡窗格。所以在这里我需要在一个地方编写这个通用代码,而不是在每个包含自定义标题栏和选项卡窗格代码的活动中编写冗余代码(即布局和它的活动特定代码)
有哪些可能的方法来做到这一点?
【问题讨论】:
在我的应用程序中有 14 个活动。在这 9 个活动中,包含自定义标题栏和选项卡窗格。所以在这里我需要在一个地方编写这个通用代码,而不是在每个包含自定义标题栏和选项卡窗格代码的活动中编写冗余代码(即布局和它的活动特定代码)
有哪些可能的方法来做到这一点?
【问题讨论】:
常见的方式是:
CommonActivity 的超类,它扩展了Activity
CommonActivity而不是Activity:这里是一个简单的例子:
public class CommonActivity extends Activity{
public void onCreate(Bundle b){
super.onCreate(b);
// code that is repeated
}
protected void moreRepeatitiveCode(){
}
}
还有你目前的活动:
public class AnActivity extends CommonActivity{
public void onCreate(Bundle b){
super.onCreate(b);
// specific code
}
}
【讨论】:
super.onCreate(b),不然编译器会不爽。
super.onCreate(b) 做什么?
嗯.. 通用代码并不总是需要在 Activity 类中,而只是在常规类中。比我们可以根据需要调用这些方法引用公共代码类。
我对这个example 说得对吗?
当然,如果我们像 Activity 一样需要它,如果我们处理好 Activity 生命周期并且不要忘记将其添加到清单文件中,上述建议将完美运行>.
一般情况下,Activity 应该只创建 UI、处理事件发生并将业务逻辑和/或其他操作委托给我们应用中的其他组件。
干杯
【讨论】: