欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

学习理解Android菜单Menu操作

程序员文章站 2024-02-28 10:48:40
今天看了pro android 3中menu这一章,对android的整个menu体系有了进一步的了解,故整理下笔记与大家分享。 ps:强烈推荐《pro android...

今天看了pro android 3中menu这一章,对android的整个menu体系有了进一步的了解,故整理下笔记与大家分享。

ps:强烈推荐《pro android 3》,是我至今为止看到的最好的一本android书,中文版出到《精通android 2》。

理解android的菜单

菜单是许多应用程序不可或缺的一部分,android中更是如此,所有搭载android系统的手机甚至都要有一个"menu"键,由此可见菜单在android程序中的特殊性。android sdk提供的菜单有如下几种:

选项菜单:最常规的菜单,android中把它叫做option menu子菜单:android中点击子菜单将弹出悬浮窗口显示子菜单项。子菜单不支持嵌套,即子菜单中不能再包括其他子菜单。上下文菜单:android中长按视图控件后出现的菜单,windows点击右键弹出的菜单即上下文菜单图标菜单:这个比较简单,就是带icon的菜单项,需要注意的是子菜单项、上下文菜单项、扩展菜单项均无法显示图标。选择菜单(alternative menu):用的比较少,以后单独介绍,本文先跳过,其实是我还没弄明白,

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

  学习理解Android菜单Menu操作  

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

学习理解Android菜单Menu操作                      

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

android3.0又引入了一个叫action bar的东西,本文不做讲解,大家自己google。

android.view.menu接口代表一个菜单,android用它来管理各种菜单项。注意我们一般不自己创建menu,因为每个activity默认都自带了一个,我们要做的是为它加菜单项和响应菜单项的点击事件。android.view.menuitem代表每个菜单项,android.view.submenu代表子菜单。其三者的关系可以用下图来表示

  学习理解Android菜单Menu操作

上面说过,每个activity包含一个菜单,一个菜单又能包含多个菜单项和多个子菜单,子菜单其实也是菜单(因为它实现了menu接口),因此子菜单也可以包含多个菜单项。submenu继承了menu的addsubmenu()方法,但调用时会抛出运行时错误。oncreateoptionsmenu()和onoptionsmenuselected()是activity中提供了两个回调方法,用于创建菜单项和响应菜单项的点击。

下一篇《android菜单操作之创建并响应菜单》将介绍如何使用代码创建菜单项,给菜单项分组,及各种响应菜单事件的方法。