切换操作栏菜单

时间:2013-02-04 01:17:48

标签: android android-webview android-actionbar actionbarsherlock

我正在尝试在操作栏中显示不同的菜单(我正在使用sherlock操作栏),具体取决于在webview中执行打开页面的javascript函数。

例如,在page1.html中,调用Android.showMenu(1)。 在page2.html中,Android.ShowMenuB(2)被调用。

目前菜单全部由java代码定义,如下所示:

public boolean onCreateOptionsMenu (Menu menu) {
super.onCreateOptionsMenu (menu);
MenuItem menu0 menu.add = (0, 0, 0, "ButtonA");
{
menu0.setIcon (R.drawable.buttona);
menu0.setShowAsAction (MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
MenuItem menu1 menu.add = (0, 1, 1, "ButtonB");
{
menu1.setIcon (R.drawable.buttonb);
menu1.setShowAsAction (MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
return true;
}

我正在以这种方式使用JavascriptInterface检测函数的存在:

myWebView.addJavascriptInterface (new WebAppInterface (this), "Android");
...
{public class WebAppInterface
Context mContext;
WebAppInterface (Context c) {
mContext = c;
}
@ JavascriptInterface
public void showMenuA (int menu) {
??
}
}

有可能吗?或者我必须使用其他方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用onPrepareOptionsMenu()动态填充操作项,并使用invalidateOptionsMenu()

使操作栏无效