Это очень просто. У меня есть следующий код:
@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).
Но он принимает OnOptionsItemSelected и значки из xml.
Это ошибка Android или я пропустил какой-то шаблон?