我想为所有 Activity 编写一个处理程序。但我有一个问题:我知道对于这项任务,我必须继承 Activity 类并重写此处理程序,如下所示:
class MyActivity extends Activity {
// ...
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// ...
}
}
但是,当我拥有从 Activity 扩展的一些 Activity 和从 MapActivity 扩展的其他 Activity 时,我必须做什么?
最佳答案
这是不可能的,因为 Java 中不可能进行多重继承,并且 MapActivity
和 Activity
无法扩展您控制的类。
您的每个基本 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/