Android: 无法在 OnCreateOptionsMenu 中更改 MenuItem 的属性
Android: Can't change properties of MenuItem in OnCreateOptionsMenu
很简单。我有以下代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
if(isReturn) {
inflater.inflate(R.menu.menu_returned, menu);
return super.onCreateOptionsMenu(menu);
} else {
inflater.inflate(R.menu.menu_return, menu);
MenuItem red = menu.findItem(R.id.action_error);
red.setIcon(R.mipmap.ic_error_red);
// if (sellStatus.equals(Bill.ERROR_CREATE)) {
// red.setIcon(R.mipmap.ic_error_red);
// } else if (sellStatus.equals(Bill.ERROR_DATABASE)) {
// red.setIcon(R.mipmap.ic_error_orange);
// } else{
// red.setVisible(false);
// }
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/action_return"
android:title="Return"
app:showAsAction="withText|always"/>
<item
android:id="@+id/action_error"
android:title=""
app:showAsAction="always"/>
</menu>
我正在尝试更改 MenuItem 的属性(setIcon、setVisible)。但它不会改变 MenutItem 属性(我猜,它不能连接 MenuItem)。
但它采用 xml 中的 onOptionsItemSelected 和图标。
是 android 错误还是我遗漏了一些模式?
更改菜单在 onPrepareOptionsMenu
而非 onCreateOptionsMenu
中的外观。这允许您根据应用程序的状态更改菜单外观。
很简单。我有以下代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
if(isReturn) {
inflater.inflate(R.menu.menu_returned, menu);
return super.onCreateOptionsMenu(menu);
} else {
inflater.inflate(R.menu.menu_return, menu);
MenuItem red = menu.findItem(R.id.action_error);
red.setIcon(R.mipmap.ic_error_red);
// if (sellStatus.equals(Bill.ERROR_CREATE)) {
// red.setIcon(R.mipmap.ic_error_red);
// } else if (sellStatus.equals(Bill.ERROR_DATABASE)) {
// red.setIcon(R.mipmap.ic_error_orange);
// } else{
// red.setVisible(false);
// }
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/action_return"
android:title="Return"
app:showAsAction="withText|always"/>
<item
android:id="@+id/action_error"
android:title=""
app:showAsAction="always"/>
</menu>
我正在尝试更改 MenuItem 的属性(setIcon、setVisible)。但它不会改变 MenutItem 属性(我猜,它不能连接 MenuItem)。
但它采用 xml 中的 onOptionsItemSelected 和图标。 是 android 错误还是我遗漏了一些模式?
更改菜单在 onPrepareOptionsMenu
而非 onCreateOptionsMenu
中的外观。这允许您根据应用程序的状态更改菜单外观。