我的主要目标是根据 Activity 中的当前布局刷新选项菜单。当 R.layout.preweb 处于活动状态时,我不希望我的操作栏上的按钮,但是当 setContentView 更改为 R.layout.main 变为活动状态时,invalidateOptionsMenu 和膨胀。这是我现在拥有的:
private int mViewMode;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return mViewMode == 2;
}
在我的整个活动中,以随机的方法,我有这个:
setContentView(R.layout.preweb);
mViewMode = 1;
//or somewhere else
setContentView(R.layout.main);
mViewMode = 2;
invalidateOptionsMenu();
所以基本上,每当 mViewMode 设置为 2 时,都会调用 invalidateOptionsMenu 然后 onCreateOptionsMenu 应该重新触发,并且 mViewMode 现在等于 2,然后我应该充气。但什么都没有发生——它永远不会膨胀。
这是怎么回事?有什么建议么?