2

我想创建一个菜单项并在稍后发生事件时显示它。但是,当我menuItemDone.setVisible(true);稍后在代码上触发时,菜单项不显示。它保持隐藏。知道如何创建隐藏菜单项并在事件发生时激活吗?菜单在活动中膨胀,片段的作用是:

        @Override
        public void onPrepareOptionsMenu(Menu menu) {
            menuItemDone = menu.findItem(R.id.pi_menu_done);
            if(some condition){
              menuItemDone.setVisible(false);
            }
        }
4

1 回答 1

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);
}
于 2012-10-22T20:04:10.517 回答