gpt4 book ai didi

java - Android/Java - 覆盖

转载 作者:搜寻专家 更新时间:2023-11-01 08:34:41 24 4
gpt4 key购买 nike

我有两个类“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");
}
}
}

子 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com