为什么OnPrepareOptions菜单无法在Android上解析方法findItem

为什么OnPrepareOptions菜单无法在Android上解析方法findItem,android,android-actionbar,android-menu,Android,Android Actionbar,Android Menu,我正在尝试启用或禁用菜单项,并使用以下命令: @Override public boolean onPrepareOptionsMenu(Menu menu) { MenuItem item = menu.findItem(R.id.menu_stats_undo); if (PlayerListSelect==1) { item.setEnabled(true); item.getIcon().setAlpha(255); } el

我正在尝试启用或禁用菜单项,并使用以下命令:

@Override
public boolean onPrepareOptionsMenu(Menu menu) 
{

    MenuItem item = menu.findItem(R.id.menu_stats_undo);

    if (PlayerListSelect==1) {
        item.setEnabled(true);
        item.getIcon().setAlpha(255);
    } else {
        // disabled
        item.setEnabled(false);
        item.getIcon().setAlpha(130);
    }
    return true;
}

还有XML

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >

<item
    android:id="@+id/menu_stats_undo"
    app:showAsAction="always"
    android:title="UNDO"/>
</menu>

但我得到了一个红色的findItem,无法解析方法为什么?

试试这个

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.YOUR_MENU_FILE_NAME, menu);
    MenuItem item = menu.findItem(R.id.menu_stats_undo);

    if (PlayerListSelect==1) {
        item.setEnabled(true);
        item.getIcon().setAlpha(255);
    } else {
        // disabled
        item.setEnabled(false);
        item.getIcon().setAlpha(130);
    }
    return true;
}

您的xml文件中是否有“menu\u stats\u undo”项?发布menu.xml文件以及在活动/碎片中膨胀的代码发布菜单xml,您无法设置可见性或不可见gone@DAgrawal我们可以通过标签setVisible(真/假)设置可见性;好的,只需更改
onprepareOptions菜单()
方法的参数类型
android.view.Menu
。也就是说,
public boolean on prepareOptions菜单(android.view.Menu菜单)
。或者添加
导入android.view.Menu
@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.YOUR_MENU_FILE_NAME, menu);
    MenuItem item = menu.findItem(R.id.menu_stats_undo);

    if (PlayerListSelect==1) {
        item.setEnabled(true);
        item.getIcon().setAlpha(255);
    } else {
        // disabled
        item.setEnabled(false);
        item.getIcon().setAlpha(130);
    }
    return true;
}