Как я могу обновить меню до нажатия кнопки меню
Я создал меню, которое должно меняться в зависимости от ввода пользователя, и меню меняется, но только после того, как пользователь дважды откроет меню. я предполагаю, что оригинальное меню построено 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 при первой попытке, но я не совсем уверен.