我正在开发一些Android应用程序,我有两个标签的ActionBar。当用户选择第二个选项卡时,我需要在ActionBar上显示2个图标。我有以下代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
mOptionsMenu=menu;
menu.getItem(0).setVisible(false);
menu.getItem(1).setVisible(false);
return true;
}
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
mViewPager.setCurrentItem(tab.getPosition());
if (tab.getPosition()==1) {
mOptionsMenu.getItem(0).setVisible(true);
mOptionsMenu.getItem(1).setVisible(true);
}
}
但是这段代码不起作用。请告诉我,我怎样才能满足我的需求?
答案 0 :(得分:10)
您需要在onPrepareOptionsMenu()
中设置菜单。您可以按照以下方式更改代码:
private boolean menuShow = false;
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
mViewPager.setCurrentItem(tab.getPosition());
if (tab.getPosition()==1) {
menuShow = true;
}
}
public boolean onPrepareOptionsMenu(Menu menu) {
if(menuShow){
mOptionsMenu.getItem(0).setVisible(true);
mOptionsMenu.getItem(1).setVisible(true);
}
return true;
}
答案 1 :(得分:1)
您似乎必须更改onPrepareOptionsMenu()
中的可见性。