Android之路-Android菜单简介
Android之路-Android菜单简介
Android提供了三种菜单:
options menu,context menu,sub menu。
options menu就是通过按home键来显示,
context menu需要在view上按上2s后显示。
这两种menu都有可以加入子菜单,子菜单不能种不能嵌套子菜单。
options menu
options menu最多只能在屏幕最下面显示6个菜单选项,称为icon menu,icon menu不能有checkable选项。
多余6的会以more icon menu来调出,成为expanded menu。options menu通过activity的onCreateOptionsMenu来生成,这个函数只会在menu第一次生成时调用。
任何想改变options menu的想法只能在onPrepareOptionsMenu来实现,这个函数会在menu显示前调用。onOptionsItemSelected 处理选中的菜单项。
context menu
context menu是跟某个具体的view绑定在一起,在activity种用registerForContextMenu来为某个view注册context menu。context menu在显示前都会调用onCreateContextMenu来生成menu。onContextItemSelected选中的菜单项。
android还提供了对菜单项进行分组的功能,可以把相似功能的菜单项分成同一个组,这样就可以通过调用setGroupCheckable,setGroupEnabled,setGroupVisible来设置菜单属性,而无须单独设置。
options menu利用XML文件定义选项菜单
a) options menu通过activity的onCreateOptionsMenu来生成
b) 这个函数只会在menu第一次生成时调用。
i. 任何想改变options menu的想法只能在onPrepareOptionsMenu来实现,这个函数会在menu显示前调用。
onOptionsItemSelected 用来处理选中的菜单项。
代码及演示:
带单选或复选的子菜单
- public boolean onCreateOptionsMenu(Menu menu){
- MenuInflater inflater = this.getMenuInflater();
- inflater.inflate(R.menu.options_menu, menu);
- SubMenu submenu = menu.addSubMenu(1,SUBMENU,1,"显示选项");
- submenu.add(20,SUBITEM1,1,"仅显示有电话号码的联系人");
- submenu.getItem(0).setCheckable(true);//复选子菜单
- SubMenu submenu2 = menu.addSubMenu(1,SUBMENU,1,"导入/导出");
- submenu2.add(20,SUBITEM3,1,"从SIM卡导入");
- submenu2.add(20,SUBITEM4,1,"从SD卡导入");
- submenu2.add(20,SUBITEM5,1,"导出到SD卡");
- submenu2.add(20,SUBITEM6,1,"分享可见的联系人");
- submenu2.add(20,SUBITEM7,1,"退出");
- SubMenu submenu4 = menu.addSubMenu(1,SUBMENU,1,"账户");
- submenu4.add(20,SUBITEM8,1,"背景数据");
- submenu4.add(20,SUBITEM9,1,"自动同步");
- submenu4.setGroupCheckable(20, true,true);//单选子菜单
|
评论暂时关闭