java - Android onOptionsItemSelected(...) 所有 Activity 的监听器

标签 java android android-activity handler

我想为所有 Activity 编写一个处理程序。但我有一个问题:我知道对于这项任务,我必须继承 Activity 类并重写此处理程序,如下所示:

class MyActivity extends Activity {

    // ...

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // ...
    }
}

但是,当我拥有从 Activity 扩展的一些 Activity 和从 MapActivity 扩展的其他 Activity 时,我必须做什么?

最佳答案

这是不可能的,因为 Java 中不可能进行多重继承,并且 MapActivityActivity 无法扩展您控制的类。

您的每个基本 Activity 中都必须有一个 onOptionsItemSelected(MenuItem item) 方法,但如果您调用共享的单独类,它们可以共享相同的代码。

例如

class BaseActivity extends Activity {
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        MenuHelper.handleOnItemSelected(item);
    }
}

.

class BaseMapActivity extends MapActivity {
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        MenuHelper.handleOnItemSelected(item);
    }
}

.

class MenuHelper {

   public static void handleOnItemSelected(MenuItem item) {
          // do something..
   }

}

关于java - Android onOptionsItemSelected(...) 所有 Activity 的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9414973/

相关文章:

java - 使用 Activity 类在 fragment 类中调用方法

java - Apache POI HSSF : How to add shape which would not resize along with corresponding cell?

Java:HttpURLConnection 的 NIO 版本?

java - 用Java在文件中写入第x行

android - 我正在尝试从服务启动 Activity ,但应用程序正在强制关闭。我正在从广播接收器启动服务

Android:判断之前显示的外部Activity

java - 解析 xml 仅返回最后一行

java - 应用程序因点击而崩溃?

android - 为警报对话框设置 Android Theme.Light

android - 无法在 TextView 中自动滚动文本