我意识到这是一个特定的问题,但我觉得其他处理兼容性问题的人必须处理这个问题。
当用户在ViewPager中浏览各种片段时,我还希望actionBar菜单项能够更改。我不确定这对compatibility actionbar是否容易实现,任何方向或帮助都会非常感激。我只是通过setTitle()更改标题,因为ActionBarHelper处理这个,但我无法找到更新菜单项的任何内容。我尝试了以下但它失败了..
public void setMenuDynamically(int resId){
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(resId, menu);
}
查看代码,似乎应该有一个简单/明显的方法来获取SimpleMenu的句柄并添加一个项目并设置其图标。
提前致谢(我希望谷歌男孩们正在阅读这个Android开发者推荐的Google+)
答案 0 :(得分: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中进行更改,但我可以从这里处理自己。