歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android之路-Android菜單簡介

Android之路-Android菜單簡介

日期:2017/3/1 10:48:12   编辑:Linux編程

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 用來處理選中的菜單項。

代碼及演示:

帶單選或復選的子菜單

  1. public boolean onCreateOptionsMenu(Menu menu){
  2. MenuInflater inflater = this.getMenuInflater();
  3. inflater.inflate(R.menu.options_menu, menu);
  4. SubMenu submenu = menu.addSubMenu(1,SUBMENU,1,"顯示選項");
  5. submenu.add(20,SUBITEM1,1,"僅顯示有電話號碼的聯系人");
  6. 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(20, true,true);//單選子菜單

Copyright © Linux教程網 All Rights Reserved