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 に答える