我注意到 @Override public boolean onCreateOptionsMenu(Menu menu) { 只被调用了一次。因为我根据应用程序的状态添加/删除菜单项,所以需要每次显示菜单时都调用此函数。 这是否可能?
如果你希望菜单每次打开都会改变,那么还有一些需要考虑的事情,这取决于Android SDK版本。以下是开发者指南中的说明:如果你想根据活动生命周期中发生的事件修改选项菜单,可以在onPrepareOptionsMenu()方法中进行。该方法会将当前的Menu对象传递给你,因此你可以对其进行修改,如添加、删除或禁用项目。(片段也提供了一个onPrepareOptionsMenu()回调。)在Android 2.3.x及更低版本中,系统每次用户打开选项菜单(按下菜单按钮)时都会调用onPrepareOptionsMenu()。在Android 3.0及更高版本中,当菜单项在操作栏中呈现时,选项菜单被视为始终处于打开状态。当事件发生并且你想执行菜单更新时,必须调用invalidateOptionsMenu()来请求系统调用onPrepareOptionsMenu()。