【发布时间】:2020-06-06 17:52:12
【问题描述】:
我创建了一个看起来像这样的可重用 xml 布局
我想在不同的活动上使用相同的组件,我想做的是创建扩展活动的BaseActivityClass。
public class BaseActivityClass extends Activity {
int layout_id = R.layout.SomeLayout;
final int menu_button_id = R.id.menuButton;
final int save_button_id = R.id.saveButton;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layout_id);
Button btn = findViewById(menu_button_id);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//this functionality will be same on every child class
}
});
}
}
我想将该类扩展为
public class SomeActivityClass extends BaseActivityClass {
int layout_id = R.layout.SomeOtherLayout;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
Activity 没有构造函数类。在意图调用时仅引用类名。 并且子类不能改变超类变量(隐藏)。
我不想将BaseActivityClass 中的相同代码复制粘贴到其他类中。
包装类可能会解决问题,但 imo 似乎太草率了。
我该如何解决这个设计问题? 我可以对任何想法发表评论
【问题讨论】:
-
Layout xml can
includeother xml - 你有没有考虑过只用布局和“包含”来实现组合。 -
感谢@Andy 的输入,我正在使用
include,但问题是我的模板有按钮,并且每次使用时按钮事件都是相同的,我不想在不同的@987654329 上复制相同的事件@类。
标签: java android oop code-reuse