2012-02-02 50 views
2

我意识到这是一个特定的问题,但我觉得其他人正在处理兼容性必须处理这一点。从兼容性添加/更改兼容性SimpleMenu/MenuItem片段

当用户在ViewPager中浏览各种片段时,我还想要更改actionBar菜单项。我不确定这是否很容易对compatibility actionbar可行,任何方向或帮助将不胜感激。我改变标题只是通过setTitle(),因为ActionBarHelper处理这个,但我找不到任何更新菜单项。我尝试以下,但它失败..

public void setMenuDynamically(int resId){ 
    MenuInflater menuInflater = getMenuInflater(); 
    menuInflater.inflate(resId, menu); 
} 

翻翻代码似乎应该有一个简单/显而易见的方式来获得一个句柄SimpleMenu和添加项目,并设置它的图标。

预先感谢(我希望谷歌的男孩正在读这篇文章作为Android开发Google+的建议)

回答

1

玉以及请让我知道如果我很糟糕的描述事物或有只是没有太多的知识在这话题。如果第一个我真的很抱歉的家伙。尽管我似乎得到这个工作,但我不确定这是否是正确的方法。

AcitonBarHelper

public void updateMenu(MenuItem item) { 
} 

ActionBarHelperBase(2.2 - 3.0设备)

@Override 
public void updateMenu(MenuItem item){ 
    addActionItemCompatFromMenuItem(item); 
} 

,并为蜂窝和ICS类似的方法

终于我有换页,并在监听器我打电话的听众...

public void setMenuDynamically(int resId, String title){ 
    MenuItem item = menu.add(title); 
    item.setIcon(resId); 
    getActionBarHelper().updateMenu(item); 
    MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); 
} 

我不确定是否需要MenuItemCompat,但我仍然包含它。至少2.2的一切似乎都很好。我很可能不得不在Overrides中进行更改,但我可以从这里处理自己。