我有一个菜单的动作条。 当您单击该按钮,菜单显示出来,一切都很好与世界同步。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/reload"
android:title="@string/reload"
android:alphabeticShortcut="r"
android:numericShortcut="1"
android:titleCondensed="Rload"></item>
<group android:id="@+id/adv" android:menuCategory="secondary">
...options
</group>
</menu>
不过,我刚刚告诉我们有一个客户,其设备具有某种被显示在当前的一个,使他们无法访问菜单等菜单栏。 所以我增加了一个按钮上的WebView有javascriptinterface告诉我的活动以编程方式显示菜单。 我能到那里就好了,但我不能为我的生活弄清楚如何仿佛菜单按钮被按下显示菜单。
我试图做这样的事情:
private void showMenu() {
try{
actionbar.show();
MenuItem menu = (MenuItem) findViewById(R.id.adv);
menu.expandActionView();
}
catch(Exception e){
Log.e(LOG_CAT,"Unable to inflate menu");
}
}
但我发现了一个空指针异常
java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.MenuItem.expandActionView()' on a null object reference
这似乎是我想要做的应该是很轻松的,但它可能是我只是在做什么,而不是愚蠢的。
编辑我真的不希望只显示R.id.adv,我想显示整个菜单,以便也许应该findViewById(R.menu.menu_main)
代替,其中menu_main
是文件名,上述XML中定义。