Menu in Action bar Android

后端 未结 2 648
梦谈多话
梦谈多话 2021-01-16 15:54

I have created ActionBar with some number of tabs dynamically like the below code.

public void addTabBar(Context context)
{       
    sActiveContext=context         


        
相关标签:
2条回答
  • 2021-01-16 16:12

    try this for handle all menu's for activity, and mange all menu's for fragment transaction on tab change,

    private Menu menu=null;
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
       this.menu=menu;
       //  call here as, showMenu(R.drawable.menu_image,2222);
       // add all menu's when that needed in your activity like save,cancel,choose color,  //close etc.
       menuHandler(0);
       return true;
    }
    private void showMenu(int imageIcon,int id)//Where imageIcon is R.drawable.menu_image
    {
       menu.add(0, id, 0, actionString).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);;
       MenuItem item=menu.findItem(id);
       item.setIcon(imageIcon);
    }
        private menuHandler(int position)
    {
    if(position==0)//For tab 1
    {
    if(!menu.findItem(1111).isVisible())    //check menu item with id 1111 is visible
        menu.findItem(1111).setVisible(true);
    if(menu.findItem(2222).isVisible()) 
        menu.findItem(2222).setVisible(false);
    }
    else if(position==0)
    {
    if(menu.findItem(1111).isVisible()) 
        menu.findItem(1111).setVisible(false);
    if(menu.findItem(2222).isVisible())
        menu.findItem(2222).setVisible(false);
    }
    else
    {
    if(menu.findItem(3333)
            menu.findItem(3333).setVisible(false);
    if(!menu.findItem(2222).isVisible())
        menu.findItem(2222).setVisible(true);
    }
    }
    @Override
        public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) 
        {}
        @Override
        public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) 
        {
    menuHandler(tab.getPosition());
    }
    
    0 讨论(0)
  • 2021-01-16 16:16

    Try this, In your Activity,

    private Menu menu=null;
    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
       this.menu=menu;
       //  call here as, showMenu(R.drawable.menu_image,2222);
       return true;
    }
    private void showMenu(int imageIcon,int id)//Where imageIcon is R.drawable.menu_image
    {
       menu.add(0, id, 0, actionString).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);;
       MenuItem item=menu.findItem(id);
       item.setIcon(imageIcon);
    }
    
    0 讨论(0)
提交回复
热议问题