一、菜单提供了熟悉的接口展示app的功能及设置。android提供了标准的app菜单应付各种情况。
二、android提供了三种类型的菜单:Option Menu、Context Menu、Submenu。
三、Option Menu是activity的一组基本的menu items。由机器上的menu键触发。Option Menu包含两种Menu item:Icon Menu item、Expended Menu item。Icon Menu是由用户点击触发的处于界面底端的菜单。它最大可以有六个菜单,而且是唯一支持icon功能的menu item,也是唯一不支持checkbox和radio按钮的menu item。expanded menu是一个竖直列表。当用户点击Icon menu的"more"选项时弹出。它只会在Option menu超过六个时显视,Option Menu应该显视程序的基本功能或导航。当用户第一次按menu键时,系统会调用onCreateOptionsMenu()方法,你可能通过编程,用add()方法增加菜单或在xml中定义。当一个item被选中时,onOptionsitemSelected()会被回调,此时可以用getItemId()区分被选中的item。
四、Option Menu相关回调函数:onCreateOptionsMenu:第一次调用时触发,用于初始化相关item。onOptionItemSelected:在菜单被选中时触发。
onPrepareOptionsMenu:每次调用时触发。
五、Context Menu:Context Menu是一个浮动的菜单列表。功能与pc上的右击菜单类似。当你长时间(约两秒)按住一个view时会弹出来。Context Menu的创建及回调方法与Option Menu类似。区别在于创建完菜单后,在Activity中需要调用registerForContextMenu方法为view注册菜单。
六、SubMenu:Submenu是一个浮动的菜单列表。它是与Option Menu或Context Menu相关联的。Submenu不支持嵌套。创建subMenu的方法是在menu中调用
addSubMenu()取得submenu,然后在submenu中调用add,增加菜单。
七、define menus in xml。在res下建menu目录,然后建xxx.xml文件。在里面添加菜单。在onCreateXXXXXMenu中调用this.getMenuInflater().inflate()方法即可生成菜单。
八、menu group:添加item时,你可以把相关功能的item的groupID设置成一样,这样就可以一次设置一组菜单的visible、enable、checkable。
九、shortcut keys:shortcut key只能Option Menu有效。可以通过item的setAlphabeticShortcurt()/setNumericShortcut()/setShortcut()方法设置快捷键。
十、set an intent for a single menu item:当客户点击item时,你想固定地触发一个intent,你可以调用item.setIntent方法。