android提供了三种菜单类型,分别为optionsmenu,contextmenu,submenu。optionsmenu就是通过按home键来显示,contextmenu需要在view上按上2s后显示。这两种menu都有可以加入子菜单,子菜单不能种不能嵌套子菜单。
optionsmenu最多只能在屏幕最下面显示6个菜单选项,成为iconmenu,iconmenu不能有checkable选项。多余6的会以moreiconmenu来调出,成为expandedmenu。optionsmenu通过activity的onCreateOptionsMenu来生成,这个函数只会在menu第一次生成时调用。任何想改变optionsmenu的想法只能在onPrepareOptionsMenu来实现,这个函数会在menu显示前调用。onOptionsItemSelected处理选中的菜单项。
contextmenu是跟某个具体的view绑定在一起,在activity种用registerForContextMenu来为某个view注册contextmenu。contextmenu在显示前都会调用onCreateContextMenu来生成menu。onContextItemSelected选中的菜单项。
android还提供了对菜单项进行分组的功能,可以把相似功能的菜单项分成同一个组,这样就可以通过调用setGroupCheckable,setGroupEnabled,setGroupVisible来设置菜单属性,而无须单独设置。