为什么onPrepareOptionsMenu无法在Android上解析方法findItem

时间:2016-04-13 10:25:45

标签: 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);
    } else {
        // disabled
        item.setEnabled(false);
        item.getIcon().setAlpha(130);
    }
    return true;
}

@Override
public boolean onCreateOptionsMenu(android.view.Menu menu) {
    getMenuInflater().inflate(R.menu.stats_menu, menu);
    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,无法解决方法原因?

1 个答案:

答案 0 :(得分:0)

试试这个

@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;
}