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