onCreateOptionsMenu(Menu menu)和onPrepareOptionsMenu(Menu menu)之间有什么区别?

54
解释onCreateOptionsMenu(Menu menu)和onPrepareOptionsMenu(Menu menu)之间的区别。
onCreateOptionsMenu(Menu menu)在创建菜单时调用,通常在Activity的生命周期中只被调用一次。这个方法应该被用来inflate(填充)菜单资源并将项目添加到菜单上。
相比之下,onPrepareOptionsMenu(Menu menu)每当用户在打开菜单之前调用,即每次打开菜单时都会被调用。这个方法通常用来动态地更改菜单项,比如启用或禁用某些项目,根据当前状态更新文本等。
1个回答

98

onCreateOptionsMenu()只会被调用一次。
onPrepareOptionsMenu()每次菜单打开时都会被调用。


根据onCreateOptionsMenu()文档:

这个方法只会在首次显示选项菜单时调用。如果需要在每次显示菜单时更新菜单,可以参考onPrepareOptionsMenu(Menu)方法。


24
另外需要注意的是,使用invalidateOptionsMenu()来强制重新加载onPrepareOptionsMenu(Menu) - Joshua Pinter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接