在Java中,如何使用继承简化代码?(Android开发人员)

在Java中,如何使用继承简化代码?(Android开发人员),java,android,oop,Java,Android,Oop,在各种活动中,我有非常相似的方法 例如: @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.ibHome:
        Intent menuIntent = new Intent(v.getContext(),Menu.class);
        startActivity(menuIntent);
        break;
    }

}

是否有一种方法(我假设是使用继承)来防止在每个类中显式地声明菜单内容


谢谢

您可以使用继承,但这实际上可能不是最佳选择,特别是如果这两个活动在“Is-A”关系中没有直接关联的话

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

下面是一个例子:

public class HomeButtonHandler implements OnClickListener{

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

        }

    }
在您的活动中,您可以将HomeButtonHandler绑定到按钮的onClickListner:

homeButton.setOnClickListener(new HomeButtonHandler());

为所有活动创建一个通用的
BaseActivity
,然后仅重写
BaseActivity.onClick()
方法


这样,您的所有活动都将有一个开关。

您能给出一个代码示例吗?我是Java新手,虽然我理解这个概念,但我不确定如何实现它。谢谢。我试图实现这一点,但它崩溃的应用程序。我认为这是因为HomeButtonHandler必须从Activity继承才能使用startActivity方法。如果是这样,您可以调整它,从传入onClick的视图中获取上下文,并使用它调用startActivity。我编辑了我的答案来举例说明。
homeButton.setOnClickListener(new HomeButtonHandler());