为什么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;
}