hdo*_*ria 18 android actionbarsherlock android-actionbar
如何在运行时添加操作栏项?
我正在使用actionBarSherlock,我需要在事件发生时添加一些按钮(例如,从RSS中获取一些文本).我不能依赖固定的xml.
Ton*_*ony 35
您可以使用以下代码创建菜单:
/*************************************/
/* 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;
}
Run Code Online (Sandbox Code Playgroud)
在里面检查一个布尔值.
您需要调用supportInvalidateOptionsMenu()来重新创建菜单.
您可以维护一个标志,确定是否需要显示按钮
boolean hasRss = false;
Run Code Online (Sandbox Code Playgroud)
然后,重写方法onCreateOptionsMenu(菜单菜单)并检查hasRss是true还是false.如果为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);
}
Run Code Online (Sandbox Code Playgroud)
每当检索值并调用invalidateOptionsMenu();重新加载操作栏菜单项时,您将必须设置hasRss值= true
| 归档时间: |
|
| 查看次数: |
21465 次 |
| 最近记录: |