Как я могу обновить меню до нажатия кнопки меню

Я создал меню, которое должно меняться в зависимости от ввода пользователя, и меню меняется, но только после того, как пользователь дважды откроет меню. я предполагаю, что оригинальное меню построено public boolean oncreateOptionsMenu(Menu menu) но на самом деле он не обновляется до тех пор, пока не будут выполнены дальнейшие нажатия кнопок меню с использованием public boolean onPrepareOptionsMenu(Menu menu) так что мне было интересно, был ли способ сказать меню обновляться при первом открытии. я пробовал следующее и не видел результатов:

public boolean onCreateOptionsMenu(Menu menu){
onPrepareOptionsMenu(menu);
MenuInflator inflater = getMenuInflater();
inflater.inflate(R.menu.menu_list, menu);
return true;
}

Можно ли как-то сделать, чтобы изменения в моей функции onPrepareOptionsMenu происходили при первом открытии меню? если я добавлю действие onPrepareOptionsMenu, то меню не будет изменено, по какой-то причине оно видит старые значения и поэтому не вносит никаких изменений

1 ответ

Решение

Я исправил свою проблему с помощью функции closeOptionsMenu() перед действием, которое выполняет пользователь. я думал, что меню было сначала создано, когда пользователь нажал кнопку меню, но кажется, что меню сначала создается при запуске, и кнопка меню сначала вызовет это, а затем вызовет prepreareoptionsmenu(). закрыть меню опций, скорее всего, вызывает onprepareoptionsmenu при первой попытке, но я не совсем уверен.

Другие вопросы по тегам