我有两个类“BaseActivity”和“ChildActivity”,即 ChildActivity 继承 BaseActivity。 问题:在我的以下代码 fragment 中,每当我按左按钮时 - 它都会记录我“我来自 child Activity ”。如果我想默认调用 SUPER CLASS 功能,我需要做什么。
public class BaseActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
};
protected void configureTitleBar(String title) {
ImageButton imgLeftButton = ((ImageButton) findViewById(R.id.actionBarLeftButton));
imgLeftButton.setOnClickListener(BaseActivity.this);
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.actionBarLeftButton){
printCustomLog("I am From Base");
}
}
}
child Activity :
public class ChildActivity extends BaseActivity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_child);
configureTitleBar("MyTitle");
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.actionBarLeftButton){
printCustomLog("I am From Child Activity");
}
}
}
最佳答案
如果你想获得父类(super class)功能,你可以
a) 根本不重写 onClick()
方法(但我认为这不是您想要的)
b) 从子类中的 onClick()
调用 super.onClick(v)
。
您的ChildActivity
中的代码将是。
@Override
public void onClick(View v) {
// Check some condition if you want to handle it in Child class
if(condition){
printCustomLog("I am From Child Activity");
}
// Else, as default, call Base class's onClick()
else{
super.onClick(v);
}
}
关于java - Android/Java - 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37763364/