0

Webビューでページを開くを実行する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) {
??
}
}

出来ますか?または、他の方法を使用する必要がありますか?

4

1 に答える 1

2

を使用onPrepareOptionsMenu()してアクションアイテムをその場で入力し、を使用してアクションバーを無効にすることができますinvalidateOptionsMenu()

于 2013-02-04T03:27:06.297 に答える