Fragment
我用我自己的ActionBarActivity
名字管理一些MainActivity
。一次Fragment
显示一个。这个例子应该很简单。在某些条件下Fragment
,显示的内容应该有一个选项菜单。
这是我的代码:
public class MainActivity extends ActionBarActivity{
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// The certain conditions. You might know the background. ;-)
final boolean hasMenu = mNavigationDrawer.isDrawerOpen() ? false : true;
// The reference to the fragment which is shown
mCurrentShownFragment.setHasOptionsMenu(hasMenu);
return super.onCreateOptionsMenu(menu);
}
...
}
因为mCurrentShownFragment.setHasOptionMenu(true)
MainActivity
's 和Fragment
's的调用onCreateOptionMenu(...)
被调用了两次。
第一个问题:为什么?
第二个问题:这样好吗?
第三个问题:如果第二个问题的答案是假的。我怎么能防止这种情况?
最好的问候,巴洛克