继承 - onCreateOptionsMenu(带超级调用)

时间:2012-09-25 15:27:03

标签: java android inheritance

我有一个扩展Activity的BaseActivity类,我有

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // draw menu stuff
    }

然后我有其他扩展BaseActivity的类,例如

  

HelpActivity扩展了活动

我认为根据继承规则,它会自动继承BaseActivty的onCreateOptionMenu调用。它没有,所以我不确定为什么。

但无论如何,在HelpActivity中我添加了这个:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}

并且它们也不起作用(即Galaxy Nexus上没有显示菜单)。所以我将BaseActivity的onCreateOptionsMenu调用复制并粘贴到HelpActivity中,这样就可以了。为什么会这样?

编辑: 两个笔记: 当我说它不起作用时,我的意思是:我有一个Galaxy Nexus,而且菜单甚至没有显示在ActionBar(ActionBarSherlock)上。当它工作时,我得到菜单,包括菜单省略号。

其次:

根据Android文档:

  

提示:如果您的应用程序包含多个活动及其中一些活动   提供相同的选项菜单,考虑创建一个活动   除了onCreateOptionsMenu()和之外什么都不做   onOptionsItemSelected()方法。然后为每个扩展此类   应共享相同选项菜单的活动。这样,你有   仅管理一组用于处理菜单操作和每个操作的代码   后代类继承了菜单行为。

来自:Re-using Options menu code

1 个答案:

答案 0 :(得分:1)

根据您粘贴的内容,HelpActivity未展开BaseActivity HelpActivity extends Activity