Android 如何在运行时添加操作栏项
如何在运行时添加操作栏项Android 如何在运行时添加操作栏项,android,android-actionbar,actionbarsherlock,Android,Android Actionbar,Actionbarsherlock,如何在运行时添加操作栏项 我使用的是actionBarSherlock,我需要在事件发生时添加一些按钮(例如,从RSS获取一些文本)。我不能依赖固定的xml。您可以用如下代码创建菜单: /*************************************/ /* Create the actionbar options menu */ /*************************************/ @Override public boolean onCreateOpti
我使用的是
actionBarSherlock
,我需要在事件发生时添加一些按钮(例如,从RSS获取一些文本)。我不能依赖固定的xml。您可以用如下代码创建菜单:
/*************************************/
/* Create the actionbar options menu */
/*************************************/
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add(0, 0, 0, "History").setIcon(R.drawable.ic_menu_recent_history)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(0, 1, 0, "Settings").setIcon(R.drawable.ic_menu_manage)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return true;
}
内部检查布尔值
您需要调用SupportInvalidateOptions菜单()来重新创建菜单。您可以维护一个标志,确定是否需要显示按钮
boolean hasRss = false;
然后,重写CreateOptionsMenu(菜单菜单菜单)上的方法,并检查hasRss是否为真。如果为true,则添加按钮以执行任何操作。然后,您可以添加您想要始终显示的普通按钮,无论您是否有RSS
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
if (hasRss)
{
menu.add(Menu.NONE, 0, Menu.NONE, "View RSS").setIcon(R.drawable.ic_menu_view)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
menu.add(Menu.NONE, 1, Menu.NONE, "Normal button that is always there").setIcon(R.drawable.ic_menu_button)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
无论何时检索值并调用
invalidateOptionsMenu(),都必须将hasRss值设置为true
重新加载操作栏菜单项提示:使用onOptions ItemSelected
处理点击!