gpt4 book ai didi

java - 在 Java 中,如何使用继承来简化我的代码? (安卓开发)

转载 作者:太空狗 更新时间:2023-10-29 12:54:33 26 4
gpt4 key购买 nike

在各种 Activity 中我都有非常相似的方法。

例如:

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.ibHome:
Intent menuIntent = new Intent(v.getContext(),Menu.class);
startActivity(menuIntent);
break;
}

}

@Override
public void onClick(View v) {
/** */

//
switch(v.getId()){
case R.id.bNew:
Intent newSwimmerIntent = new Intent(v.getContext(),NewSwimmer.class);
startActivity(newSwimmerIntent);
break;
case R.id.ibHome:
Intent menuIntent = new Intent(v.getContext(),Menu.class);
startActivity(menuIntent);
break;

有没有办法(我假设会使用继承)来防止在每个类中显式声明 menuIntent

谢谢。

最佳答案

您可以使用继承,但实际上这可能不是最佳选择,尤其是当两个 Activity 在“Is-A”关系中不直接相关时。

在这种情况下,您最好声明一个实现 OnClickListener 接口(interface)的新类。然后,您可以实例化该类并将其绑定(bind)到按钮的点击事件,无论它们在哪里使用。

这是一个例子:

public class HomeButtonHandler implements OnClickListener{

@Override
public void onClick(View v) {
Intent menuIntent = new Intent(v.getContext(),Menu.class);
v.getContext().startActivity(menuIntent);

}

}

在您的 Activity 中,您只需将 HomeButtonHandler 绑定(bind)到按钮的 onClickListner 即可:

homeButton.setOnClickListener(new HomeButtonHandler());

关于java - 在 Java 中,如何使用继承来简化我的代码? (安卓开发),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8193910/

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