我正在尝试禁用并启用菜单选项,但它显示错误:Nullpointer异常。
这是我的代码:
mnu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/Add" android:title="Add" android:icon="@drawable/add"/>
<item android:id="@+id/bill_menu" android:title="Bill" android:enabled="false" />
</menu>
我在我的java类中使用
//creating menu
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mnu, menu);
MenuItem mi=((MenuItem) this.findViewById(R.id.bill_menu));
mi.setEnabled(true);
}
return true;
}
答案 0 :(得分:6)
替换
MenuItem mi=((MenuItem) this.findViewById(R.id.bill_menu));
与
MenuItem mi = menu.findItem(R.id.bill_menu);
答案 1 :(得分:3)
要禁用选项菜单 - 覆盖onPrepareOptionsMenu()并返回false,如onPrepareOptionsMenu()中所述。
关于例外的一些建议:
答案 2 :(得分:1)
如果覆盖onCreateOptionsMenu()并在其中添加菜单项并覆盖onPrepareOptionsMenu()以更改项目的启用,那不是更好吗?这样可以降低代码中出错的几率,并且您将不再遇到现在遇到的问题。
答案 3 :(得分:0)
我出现了同样的问题,我找到了这个问题的答案。 Enable/Disable Menu
希望它有所帮助。答案 4 :(得分:0)
Android开发者网站已经有了一个帮助/手册:
http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu