如何在Android上禁用和启用菜单选项?

如何在Android上禁用和启用菜单选项?,android,contextmenu,Android,Contextmenu,我试图禁用和启用一个菜单选项,但它显示了一个错误: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

我试图禁用和启用一个菜单选项,但它显示了一个错误: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>

要禁用选项菜单,请按中所述覆盖OnPrepareOptions菜单()并返回false

关于例外情况的一些建议:

  • 尝试调用super.onCreateOptions菜单(菜单)
  • 确定哪一个实际为空并共享logcat输出

  • 如果您重写onCreateOptions菜单()并在其中添加菜单项,然后重写onPrepareOptions菜单()以更改项目的启用,这不是更好吗。这将降低代码中出现错误的可能性,并且您将不再存在当前的问题。

    替换

    MenuItem mi=((MenuItem) this.findViewById(R.id.bill_menu));
    

    MenuItem mi=((MenuItem) this.findViewById(R.id.bill_menu));
    
    MenuItem mi = menu.findItem(R.id.bill_menu);