设为首页 加入收藏

TOP

Android中的Menu菜单小解
2014-11-24 14:10:32 来源: 作者: 【 】 浏览:2
Tags:Android Menu 菜单 小解

1. 选项菜单:最常规的菜单,android中把它叫做option menu


2. 子菜单:android中点击子菜单将弹出悬浮窗口显示子菜单项。子菜单不支持嵌套,即子菜单中不能再包括其他子菜单。


3. 上下文菜单:android中长按视图控件后出现的菜单,windows点击右键弹出的菜单即上下文菜单


选项菜单最多只能显示6个菜单项,超过6个时,第6个菜单项会被系统替换为一个叫“更多”的子菜单,原来显示不下的菜单项都作为“更多”菜单的子菜单项。如下图:





第6个菜单项自动变为“更多”



点击“更多”显示其他菜单项


每个菜单都包含两个部分:


1. 建立菜单


2. 处理选项动作


"onCreateOptionsMenu" 函数即菜单列的主体。在 Android 机器或模拟器上按下硬体 的"Menu"( 菜单 ) 键,所弹出的菜单列即是靠 "onCreateOptionsMenu" 函数来定义。当我们在Activity 中定义了"onCreateOptionsMenu" 之后,按下"Menu"( 菜单 ) 键时,就会弹出相对应的菜单列。当我们在 Android 应用程序的菜单列上选择了相应的选项后,则是依赖"onOptionsItemSelected" 函数,来负责处理菜单列中各选项所个别对应的动作。


关系可以用下图来表示:



Android的activity已经为我们提前创建好了android.view.Menu对象,并提供了回调方法onCreateOptionsMenu(Menu menu)供我们初始化菜单的内容。该方法只会在选项菜单第一次显示的时候被执行,如果你需要动态改变选项菜单的内容,请使用onPrepareOptionsMenu(Menu)


public boolean onPrepareOptionsMenu(Menumenu) {//动态的修改菜单title


MenuItemitem=menu.findItem(SAVE_AS);


item.setTitle(item.getTitle()+""+i);


i++;


returnsuper.onPrepareOptionsMenu(menu);


}


代码创建和响应最常用的选项菜单:


上面的代码演示了添加菜单项的3种方法,下面解释下第三种方法add(intgroupId, int itemId, int order,CharSequence title)。其中,第一个参数是组号,android中你可以给菜单分组,以便快速地操作同一组的菜单。第二个参数指定每个菜单项的唯一ID号,你可以自己指定,也可以让系统来自动分配,在响应菜单时你需要通过ID号来判断哪个菜单被点击了。因此常规的做法是定义一些ID常量,但在android中有更好的方法,就是通过资源文件来引用,这个之后介绍。第三个参数代表菜单项显示顺序的编号,编号小的显示在前面。


使用xml生成菜单:


Options_menu.xml文件


在activity中加上下面这两句:


MenuInflaterinflater=this.getMenuInflater();


inflater.inflate(R.menu.options_menu,menu);


xml相应的菜单就会加入进去;


inflater在android中建立了从资源文件到对象的桥梁,MenuInflater即把菜单xml资源转换为对象并添加到menu对象中,它可以通过activity的getMenuInflater()得到。我们在MainActivity中重写onCreateOptionsMenu(...)方法。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android组件RadioButton、checkBo.. 下一篇Android之UI组件TextView的属性大..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: