我有一个扩展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

最佳答案

根据您粘贴的内容,您的HelpActivity不会扩展BaseActivity
HelpActivity extends Activity

08-04 02:26