菜单在操作栏的Android(Menu in Action bar Android)

2019-08-31 07:44发布

我创建了动作条与一些数量的标签动态,如下面的代码中。

public void addTabBar(Context context)
{       
    sActiveContext=context;      
    sActionBar = getActionBar(); 
    sActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
}  

public void addTabItem(final String url, String tabTitle)
{   
    arrayList.add(url);
    Tab tab = sActionBar.newTab();
    if(tabTitle.equals(""))
    {
        int childcount=sActionBar.getTabCount();
        tabTitle="Tab" + String.valueOf(childcount+1);          
    }
    tab.setText(tabTitle);          
    tab.setTabListener(this);
    sActionBar.addTab(tab);        
}

  @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub
        linearLayout=new LinearLayout(sActiveContext);      
        linearLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
        linearLayout.setOrientation(LinearLayout.VERTICAL); 
        setContentView(linearLayout);
        CustomWebView webview=new CustomWebView(sActiveContext);
        FrameLayout layout=webview.createwebview();

        for (int i = 0; i < arrayList.size(); i++) {
            if(tab.getPosition()==i)
            {
                webview.initwebview(arrayList.get(i));
                break;
            }
        }
    linearLayout.addView(layout);
    }

如果我已经转换这个代码库并调用这些方法,我可以创建在操作栏中的标签的n个。 现在,我想添加菜单项和下拉菜单(椭圆形有三个点),就像下面的链接。 http://developer.android.com/guide/topics/ui/actionbar.html#Tabs如果我的形象传递给showMenu(R.drawable.menu_image)方法,该菜单项必须动态地创建。 我怎样才能做到这一点? 请给一些建议。

Answer 1:

试试这个,在你的活动,

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);
}


Answer 2:

尝试一下本作处理所有菜单对活动和奶源所有菜单的关于标签改变片段的交易,

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());
}


文章来源: Menu in Action bar Android