`
wen742538485
  • 浏览: 241021 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

onPrepareOptionsMenu 和onCreateOptionsMenu 的区别

阅读更多
在android中创建菜单menu时需要重写Activity的onCreateOptionsMenu(Menumenu)方法,这个方法只在第一次创建的时候调用一次,所以如果之后想对menu进行动态的修改,那么就不能再对onCreateOptionsMenu做什么手脚,就要用到onPrepareOptionsMenu(Menumenu)方法了。

onPrepareOptionsMenu与onCreateOptionsMenu不同的是,他在每次按下menu硬键之前会被调用,所以可以在这里动态的改变menu。




注意:在onPrepareOptionsMenu(Menumenu)函数中,首先需要调用:

super.onPrepareOptionsMenu(menu);

menu.clear();

如果没有clear而直接add的话,那么菜单中菜单项是会“追加”的,这样随着你不停的点menu键,菜单项就不停的增加。

另外,android系统默认的菜单样式是支持最多3个一行,如果有4项就每行2个有2行...如果想自定义样式,可以使用xml文件定义样式。
分享到:
评论

相关推荐

    Android使用onCreateOptionsMenu()创建菜单Menu的方法详解

    1. 代码添加:在`onCreateOptionsMenu`或`onPrepareOptionsMenu`中使用`menu.add()`方法。例如: ```java public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(Menu....

    Sample_9_1.rar_android_android submenu_android 菜单_onCreateOption

    OnCreateOptionsMenu()和OnOptionsMenuSelected()是Activity中提供的两个回调方法,用于创建菜单项和响应菜单项的点击。onOptionsMenuClosed菜单关闭后发生的动作 onPrepareOptionsMenu选项菜单显示之前...

    A0242动态改变菜单OptionsMenuModify1

    开发者可以使用`onCreateOptionsMenu()`和`onPrepareOptionsMenu()`这两个生命周期方法来创建和更新菜单。`onCreateOptionsMenu()`用于首次创建菜单,而`onPrepareOptionsMenu()`则在每次菜单显示前调用,为动态调整...

    Android安卓经典设计例程源代码-MenuXmlSample.rar

    在Activity中,菜单的生命周期与`onCreateOptionsMenu()`、`onPrepareOptionsMenu()`和`onOptionsItemSelected()`三个方法紧密关联。`onCreateOptionsMenu()`在首次显示菜单时被调用,用于加载和初始化菜单资源。`...

    Android动态添加menu菜单的简单方法

    方法名 触发时间onCreateOptionsMenu 进入Launcher后第一次点MENU按钮时触发onPrepareOptionsMenu 有两种情况:1、进入Launcher后第一次点MENU按钮触发onCreateOptionsMenu后调用;2、经过第一步,以后每次点MENU...

    Android中使用选项菜单模拟微信功能项目的代码清单.pdf

    1. 使用`onCreateOptionsMenu`和`onPrepareOptionsMenu`方法创建和准备选项菜单。 2. XML布局文件`R.menu.main`中定义菜单项。 3. 使用反射技术访问和修改Android内部类的私有方法。 4. `MenuItem`对象的创建和配置...

    动态添加菜单的资源代码

    要动态添加菜单项,我们需要在`onPrepareOptionsMenu()`或`onCreateOptionsMenu()`方法中使用`Menu.add()`方法。这个方法接受四个参数:组ID、菜单ID、菜单项的顺序号(用于排序)和标题。 ```java MenuItem ...

    安卓Android源码——MyOptionMenu.rar

    - 它基于 `Menu` 类,可以通过在 `onCreateOptionsMenu()` 和 `onPrepareOptionsMenu()` 方法中填充菜单项。 2. **自定义 OptionMenu** - `MyOptionMenu` 可能是开发者为了实现特定设计或交互而创建的自定义菜单...

    Android提高十八篇之自定义Menu(TabMenu)

    通过重写`onPrepareOptionsMenu`和`onCreateOptionsMenu`方法,可以实现菜单项的动态更新和自定义样式。例如,改变菜单项的颜色、字体大小等。 4. **TabMenu的理解与实现** TabMenu通常用于在多个视图间切换,...

    Android安卓经典设计例程源代码-MenuItemSample.rar

    在Android应用中,我们通常在`onCreateOptionsMenu()`或`onPrepareOptionsMenu()`方法中定义和配置`MenuItem`。例如: ```java @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater()....

    Android应用源码之MenuSample.zip

    - 如果在Fragment中使用菜单,需要在Fragment中重写`onCreateOptionsMenu`和`onOptionsItemSelected`,并通知Activity。 通过分析MenuSample项目的源码,开发者可以深入理解Android菜单的生命周期、菜单项的事件...

    Android源码自动判断特定位置的弹出导航菜单.zip

    关键在于重写`onPrepareOptionsMenu()`方法,并使用`MenuItem.setVisible()`来控制菜单的显示和隐藏: ```java @Override public boolean onPrepareOptionsMenu(Menu menu) { MenuItem myMenuItem = menu.findItem...

    Android menu单选菜单.rar

    2. **生命周期**: Menu与Activity的生命周期紧密相关,主要涉及`onCreateOptionsMenu()`, `onPrepareOptionsMenu()`, 和 `onOptionsItemSelected()` 三个方法。 - `onCreateOptionsMenu(Menu menu)`: 在需要显示...

    Android安卓经典设计例程源代码-MenuSample.rar

    Android支持为菜单项添加进入和退出的动画效果,这可以通过重写`onPrepareOptionsMenu()`和`onOptionsItemSelected()`方法,以及利用`Transition`类来实现。 10. **菜单的最佳实践** - 避免过多的菜单项,保持...

    Android Menu的设置方法

    你可以直接在`onCreateOptionsMenu`方法中创建并添加菜单项,但这种方法相比XML布局文件会更繁琐,因为每个菜单项都需要手动创建和配置。 总的来说,静态菜单通过XML布局文件创建,易于维护和扩展,而动态创建则...

    Android应用源码之游戏菜单进度条.zip

    `Menu`对象可以通过`onCreateOptionsMenu()`或`onPrepareOptionsMenu()`方法在活动中创建。菜单项可以定义在XML布局文件中,然后在活动中通过`inflate()`方法加载。例如,一个简单的菜单XML可能包含`<item>`标签,每...

    android menu菜单使用

    本文将详细介绍如何在Android中创建和使用Menu菜单,尤其适合初学者。 首先,要使用Android菜单,我们需要在布局文件(如`activity_main.xml`)中不直接添加菜单元素,因为菜单通常在活动中动态生成。菜单的定义...

    安卓Android源码——MenuSample.rar

    3. **菜单的生命周期**:在Activity中,菜单的生命周期与Activity的onCreateOptionsMenu()、onPrepareOptionsMenu()和onOptionsItemSelected()方法紧密关联。onCreateOptionsMenu()用于初始化菜单,...

    android-options-menu.7z

    为了确保在不同Android版本上的兼容性,可能需要使用Support Library中的AppCompatActivity和它的onCreateOptionsMenu()、onOptionsItemSelected()方法。 九、菜单动画和过渡效果 可以通过自定义ViewGroup或使用...

    Android 动态更新Menu菜单

    在Activity中,我们需要重写`onCreateOptionsMenu`方法来加载Menu资源,并通过`onOptionsItemSelected`方法来处理用户的选择。 ```java @Override public boolean onCreateOptionsMenu(Menu menu) { ...

Global site tag (gtag.js) - Google Analytics