`
jandroid
  • 浏览: 1894452 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

android menu 实现动态修改menu .

阅读更多

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

      于是就要用到onPrepareOptionsMenu(Menu menu)方法了。onPrepareOptionsMenu与onCreateOptionsMenu不同的是,他在每次按下menu硬键之前会被调用,所以可以在这里动态的改变menu。如果需要创建一个全新的菜单,那么可以在

public boolean onPrepareOptionsMenu(Menu menu) {
     super.onPrepareOptionsMenu(menu);
     menu.clear();
   
     cb=(CheckBox)findViewById(R.id.my_mms_item_checkbox);
   menu.add(0, MENU_01, 0, "新建短信").setIcon(R.drawable.menu_new_mms);
   Log.d(TAG,"cb.getVisibility():"+cb.getVisibility());
   if(cb.getVisibility()==View.GONE)
    menu.add(0, MENU_02, 0, "多选").setIcon(R.drawable.mms_multiple);
   else
   {
    menu.add(0, MENU_03, 0, "取消多选").setIcon(R.drawable.mms_multiple);
    menu.add(0, MENU_04, 0, "选择全部").setIcon(R.drawable.mms_multiple);
   }
     return true;
  }

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

 

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

0
0
分享到:
评论

相关推荐

    Android动态修改ToolBar的Menu菜单示例

    Android动态修改ToolBar的Menu菜单 效果图 实现 实现很简单,就是一个具有3个Action的Menu,在我们滑动到不同状态的时候,把对应的Action隐藏了。 开始上货 Menu Menu下添加3个Item <menu xmlns:android=...

    Android activity Menu设计实例参考.rar

    Android activity Menu设计实例源代码,点击第一个menu的第一个按钮执行button1 可见的动作,点击第二个个menu的第一个按钮执行button2 可见的动作,menu.findItem(EXIT_ID);找到特定的MenuItem,MenuItem.setIcon....

    Android中menu使用详解

    Menu(菜单)是Android中一定会使用的模块,每个Android项目都会用到Menu来给用户起到选择和导航的作用,提升用户体验,...①在res下的menu中创建file_menu.xml: <?xml version=1.0 encoding=utf-8?> <me

    Google.Android.SDK开发范例大全

     3.21 Android变脸——主题(Theme)实现  第4章 史上超豪华的手机控件  第5章 交互式通信服务与手机控制  第6章 手机自动服务纪实  第7章 娱乐多媒体  第8章 当Android与Internet接轨  第9章 Google...

    Android 高仿QQ空间侧滑Menu效果且换肤功能.rar

    Android 高仿QQ空间侧滑Menu效果且换肤功能本项目大体结构是 首先有一个换肤基类BaseSkinActivity,然后其他activity都继承这个基类, 类中提供com.zhy.changeskin.SkinManager.getInstance().changeSkin()更改皮肤 ...

    Android 自定义菜单

    Android2.2版本中,如果你要修改菜单默认的背景颜色,网络上有许多的方法。在此就不说了。但是,如果要在2.2以上的版本修改菜单的样式,例如修改背景颜色,图片等,使用这些方法是没有任何作用的。因此自己写了一个...

    android开发menu Demo

    看看Android中的menu的使用,关键是menu中的按键的响应,我这里响应是修改一下标题

    Android 为EditText文本框添加长按显示上下文菜单.rar

    Android ContextMenu实例,为EditText文本框添加上下文菜单,菜单激活并显示的方式是,用户在EditText输入框上面长按2秒,即可弹出上下文菜单,如运行截图所示的效果,为实现此功能,创建了onCreateContextMenu ...

    Android开发实验---通讯录.docx

    实验设备及软件: 一台电脑,Androidstudio2.3.3软件 实验方法(原理、流程图) 实现的通讯录功能和界面可在实验开发中由每位同学自己设计,但必须使用 SQLite 数据库保存通讯录信息。 以下功能和软件界面供参考:...

    Android实现为Tab添加Menu的方法

    本文实例讲述了Android实现为Tab添加Menu的方法。分享给大家供大家参考,具体如下: 在Android中,TabActivity类中没有与Menu有关的方法,所以如果单独使用TabActivity进行开发时,是无法创建菜单项的。为了给Tab...

    Android 演示ContentProvider组件用法的写日记APP源码.rar

    本源码主要是演示Android ContentProvider组件的使用,借助一个写日记小程序来演示组件中各种方法的... 在ActivityMain.java中,在每一次menu生成的时候前都会调用这个方法,在这个方法里边可以动态的修改生成的menu。

    筛选菜单库DropDownMenu­_.zip

     mDropDownMenu.addMenuSelectListener(new DropDownMenu.OnDefultMenuSelectListener() {  @Override  public void onSelectDefaultMenu(int index, int pos,String clickstr) {  //index:点击的tab...

    Android编程入门很简单.(清华出版.王勇).part1

    5.2.14实例——动态修改Spinner项 5.2.15 使用进度条——ProgressBar 5.2.16实例——动态修改进度条 5.2.17使用拖动条——SeekBar 5.2.1 8实例——简单使用SeekBar 5.2.19使用图片视图——ImageView 5.2.20实例——...

    Flex开发Android 更改ViewMenu外观

    NULL 博文链接:https://mrchai.iteye.com/blog/1194618

    Android插件

    根据布局文件快速生成对应的Activity,Fragment,Adapter,Menu。 4.Android Parcelable code generator JavaBean序列化,快速实现Parcelable接口。 5.Android Methods Count 显示依赖库中得方法数 6....

    Android实现简易点菜功能

    实现建议的点菜功能,点击按钮,修改菜品数量,类似于购物车中的物品数量修改

    Android 2.3.7.r1 camera录像过程中按menu菜单键时会停止录像

    Android 2.3.7.r1 按menu键时会停止录像。改成录像时按menu键不做处理,可做如下修改: 在packages/apps/CameraOpen/src/com/mediatek/camera/VideoCamera.java onKeyDown()方法中: 修改 代码如下: case KeyEvent....

    sliding_menu.7z

    androidx 中对v4和v7包进行了管理,项目中使用Androidx后,直接导入slidinlibrary编译会通过,但是运行时会找不到v4包,所有我这边修改了包中内容,以适配Androidx的项目

    Android 高仿QQ空间侧滑Menu效果且实现插件式换肤功能 源码

    高仿QQ空间 侧滑Menu效果并且提供换肤功能,本项目大体结构是 首先有一个换肤基类...类中提供com.zhy.changeskin.SkinManager.getInstance().changeSkin()更改皮肤 ,侧滑部分通过DrawerLayout来实现的。

Global site tag (gtag.js) - Google Analytics