如何在活动之间共享点击处理程序

时间:2014-04-22 14:57:21

标签: java android

场景,我有两个活动,活动A和活动B,它们都从Activity扩展,我在ActionBar上有一个基本菜单xml,在handler()方法上定义了onClick,我该怎么做使这个方法可用于我的两个活动而不在两个中实现?,是否只能使一个常见的活动SuperClass?

1 个答案:

答案 0 :(得分:1)

一般的答案是你可以像你说的那样创建一个共同的超类,或者你可以创建一个帮助器类,其中每个使用该方法的Activity类都有:

public void onSomethingClick(View target){
    MyActionBarHelperMethods.onSomethingClick(View target, /* whatever other things from this class you need */);
}

如果你想要以这种方式处理很多事情,这可能会变得冗长,但它比在任何地方实现相同的方法都要简洁。以这种方式在操作栏中实现新项目也会很痛苦(因为您必须将该方法添加到您想要使用它的每个Activity中)。但是,再一次,如果你想改变它,就不必在每个地方修改方法。

当您想要添加新方法时,可能减轻头痛的一种方法是使每个Activity实现一个包含您希望它们拥有的所有操作栏方法的接口;大多数IDE都会意识到你已经添加了一个新的接口成员并提供将它添加到所有实现类中。