onPrepareOptionsMenu

来源:互联网 发布:疯狂美工助手 注册码 编辑:程序博客网 时间:2024/05/11 15:22

http://developer.android.com/reference/android/app/Activity.html#onPrepareOptionsMenu(android.view.Menu)

public boolean onPrepareOptionsMenu (Menu menu)这个方法在每次显示菜单前都会被调用

Since: API Level 1

Prepare the Screen's standard options menu to be displayed. (它在menu show之前回调)This is called right before the menu is shown, every time it is shown. You can use this method to efficiently enable/disable items or otherwise dynamically modify the contents.

The default implementation updates the system menu items based on the activity's state. Deriving classes should always call through to the base class implementation.

Parameters
menuThe options menu as last shown or first initialized by onCreateOptionsMenu().
Returns
  • You must return true for the menu to be displayed; if you return false it will not be shown.
See Also
  • onCreateOptionsMenu(Menu)

http://blog.163.com/gobby_1110/blog/static/292817152010101973515369/

Android的Menu状态动态设置方法onPrepareOptionsMenu(Menu menu)  

2010-11-19 20:00:09|  分类: Android开发笔记|字号 订阅

覆盖onPrepareOptionsMenu(Menu menu)这个方法非常的好用,我们可以定义boolean值来进行判断,如果满足条件就可以把菜单栏动态设置成某些状态,比如是否可见,text值等等。

比如我设定一个布尔值addingNew=flase,然后在其他方法体中对addingNew进行重新赋值。在覆盖onPrepareOptionsMenu(Menu menu)中,我们对addingNew进行判断,如果它的值是ture,我们ID为REMOVE_TODO的菜单项就设置为text=“cancel”。否则,我们ID为REMOVE_TODO的菜单项就设置为text=“remove”。

总之,就是可以进行一些判断,然后动态设置我们的菜单项状态。

 

另外一点,我们应该积累经验,学会很好的运用boolean值,这在很多地方都很有用。

 


onCreateOptionsMenu()这个方法只会执行一次, 所以不太好判断。
onPrepareOptionsMenu()这个方法在每次显示菜单前都会被调用。所以很好做判断。

有些地方,做根据条件某些菜单项不可用时,也可以采用重写onPrepareOptionsMenu()来实现



原创粉丝点击