我想创建一个菜单项,并在事件发生时稍后显示它。但是,当我稍后在代码上触发menuItemDone.setVisible(true);
时,菜单项不会显示。它保持隐藏。知道如何创建隐藏的菜单项并在事件发生时激活吗?菜单在活动中膨胀,片段的作用是:
@Override
public void onPrepareOptionsMenu(Menu menu) {
menuItemDone = menu.findItem(R.id.pi_menu_done);
if(some condition){
menuItemDone.setVisible(false);
}
}
答案 0 :(得分:0)
这对我有用..
public boolean onCreateOptionsMenu(Menu menu)
{
Menu m_menu = menu;
m_menu.add(Menu.NONE, Menu.FIRST+1, 0, "one");
m_menu.add(Menu.NONE, Menu.FIRST+2, 0, "two");
m_menu.add(Menu.NONE, Menu.FIRST+3, 0, "three");
m_menu.add(Menu.NONE, Menu.FIRST+4, 0, "four");
return super.onCreateOptionsMenu(menu);
}
public boolean onPrepareOptionsMenu(Menu menu)
{
Menu m_menu = menu;
if(bTested)
{
m_menu.findItem(Menu.FIRST+1).setVisible(false);
m_menu.findItem(Menu.FIRST+2).setVisible(true);
}
else
{
m_menu.findItem(Menu.FIRST+1).setVisible(true);
m_menu.findItem(Menu.FIRST+2).setVisible(false);
}
if(bConnected)
{
m_menu.findItem(Menu.FIRST+3).setVisible(false);
m_menu.findItem(Menu.FIRST+4).setVisible(true);
}
else
{
m_menu.findItem(Menu.FIRST+3).setVisible(true);
m_menu.findItem(Menu.FIRST+4).setVisible(false);
}
return super.onPrepareOptionsMenu(menu);
}