Android之路-Android菜单简介


Android提供了三种菜单:

options menucontext menusub menu 

options menu就是通过按home键来显示

context menu需要在view上按上2s后显示。

这两种menu都有可以加入子菜单,子菜单不能种不能嵌套子菜单。 

options menu

options menu最多只能在屏幕最下面显示6个菜单选项,称为icon menuicon menu不能有checkable选项。

多余6的会以more icon menu来调出,成为expanded menuoptions menu通过activityonCreateOptionsMenu来生成,这个函数只会在menu第一次生成时调用。

任何想改变options menu的想法只能在onPrepareOptionsMenu来实现,这个函数会在menu显示前调用。onOptionsItemSelected 处理选中的菜单项。 

context menu

context menu是跟某个具体的view绑定在一起,在activity种用registerForContextMenu来为某个view注册context menucontext menu在显示前都会调用onCreateContextMenu来生成menuonContextItemSelected选中的菜单项。 

android还提供了对菜单项进行分组的功能,可以把相似功能的菜单项分成同一个组,这样就可以通过调用setGroupCheckablesetGroupEnabled,setGroupVisible来设置菜单属性,而无须单独设置。 

options menu利用XML文件定义选项菜单

a) options menu通过activityonCreateOptionsMenu来生成

b) 这个函数只会在menu第一次生成时调用。

i. 任何想改变options menu的想法只能在onPrepareOptionsMenu来实现,这个函数会在menu显示前调用。

onOptionsItemSelected 用来处理选中的菜单项。 

代码及演示: 

带单选或复选的子菜单

  1. public boolean onCreateOptionsMenu(Menu menu){  
  2.       
  3.     MenuInflater inflater = this.getMenuInflater();  
  4.     inflater.inflate(R.menu.options_menu, menu);  
  5.       
  6.     SubMenu submenu  =  menu.addSubMenu(1,SUBMENU,1,"显示选项");  
  7.     submenu.add(20,SUBITEM1,1,"仅显示有电话号码的联系人");  
  8.     submenu.getItem(0).setCheckable(true);//复选子菜单  

  1. SubMenu submenu2  =  menu.addSubMenu(1,SUBMENU,1,"导入/导出");  
  2.  submenu2.add(20,SUBITEM3,1,"从SIM卡导入");  
  3.  submenu2.add(20,SUBITEM4,1,"从SD卡导入");  
  4.  submenu2.add(20,SUBITEM5,1,"导出到SD卡");  
  5.  submenu2.add(20,SUBITEM6,1,"分享可见的联系人");  
  6.  submenu2.add(20,SUBITEM7,1,"退出");  

     

  1. SubMenu submenu4  =  menu.addSubMenu(1,SUBMENU,1,"账户");  
  2. submenu4.add(20,SUBITEM8,1,"背景数据");  
  3. submenu4.add(20,SUBITEM9,1,"自动同步");  
  4. submenu4.setGroupCheckable(20true,true);//单选子菜单  

  • 1
  • 2
  • 下一页

相关内容