如何在按下菜单按钮之前更新菜单

时间:2014-02-09 22:18:57

标签: java android menu oncreateoptionsmenu

我创建了一个需要根据用户输入进行更改的菜单,菜单确实发生了变化,但只有用户打开菜单两次。我的猜测是原始菜单是由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 个答案:

答案 0 :(得分:0)

我在用户执行的操作之前使用函数closeOptionsMenu()修复了我的问题。我认为菜单是在用户按下菜单按钮时首先构建的,但似乎菜单首先在启动时构建,菜单按钮将首先调用该菜单,然后调用onprepareoptionsmenu()。关闭选项菜单最有可能在第一个菜单按钮上强制onprepareoptionsmenu尝试,但我不完全确定。