0

我创建了一个需要根据用户输入更改的菜单,并且菜单确实会更改,但只有在用户打开菜单两次时才会更改。我的猜测是原始菜单是由构建的,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 的操作,则菜单不会被修改,由于某种原因,它会看到旧的值,因此不会进行任何更改

4

1 回答 1

0

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

于 2014-02-10T00:03:27.917 回答