菜單Menu
Android手機用一個按鍵“Menu”專門來顯示菜單,所以,當應用程序設置了菜單,我們可以通過該按鍵來操作應用程序的菜單選項。
有兩種不同的實現方式:
訪問res中menu菜單資源
/res/menu/ 存放爲應用程序定義各種菜單的資源,包括選項菜單、子菜單、上下文菜單資源
Android推薦使用XML來定義菜單,使用XML“定義菜單將會提供更好的解耦。
一、android中Menu菜單是隱藏的
在activity主界面按手機Menu鍵最多隻能顯示6個菜單項,設置6個以上,彈出的帶圖標選項的菜單選項只能顯示當前5個菜單項,第六個菜單項也是more菜單項(單擊會浮現出一個主界面之上的一個擴展項,不顯示圖標,可以顯示單選框和複選框)
二、三種菜單類型:
1,options menu(主菜單),通過按home鍵來顯示特點:只支持文字和圖標expanded menu,不支持icon2,context menu(上下文菜單)特點:在view上按上2s後顯示不支持icon和快捷鍵3,sub menu(子菜單)特點:以上兩種可以加入子菜單子菜單不能嵌套子菜單----android系統,菜單隻有兩層子菜單不支持icon
三、菜單分組功能
把相似功能的菜單分成同一組,通過調用setGroupCheckable,setGroupEnabled,setGroupVisible設置屬性,無須單獨設置
四、菜單創建方式
創建方式有兩種:
1,通過在佈局文件中聲明創建<menu>根元素,裏面嵌套<item>和<group>子元素,<item>可以嵌套<menu>形成子菜單<group>(表示一個菜單組)元素的屬性說明:
id:唯一標識該菜單組引用idmenuCategory:對菜單進行分類,定義菜單的優先級,有效值爲container、system、secondary、alternative。orderInCategory:一個分類排序整數。checkableBehavior:選擇行爲,單選、多選還是其他。有效值爲none、all、singlevisible:是否可見,值true和falseenabled:是否可用,true或false。
<item>表示菜單項。
id:唯一標識該菜單組引用idmenuCategory:菜單分類orderInCategory:分類排序title:菜單標題字符串titleCondensed:濃縮標題,適合標題太長的時候使用。icon:菜單的圖標alphabeticShortcut:字符快捷鍵numericShortcut:數字快捷鍵checkable:是否可選chexked:是否已經被選visible:是否可見,值true和falseenabled:是否可用,true或false。
2,另一種通過在代碼中創建。
(1)Context Menu 代碼之上下文菜單特點:在view上按上2s後顯示。不支持icon和快捷鍵當用戶長事件按鍵不放時,彈出的菜單爲上下文菜單。(windows裏右鍵單擊彈出的菜單)步驟:
1,onCreateContextMenu()方法,調用Menu的add方法添加菜單項2,onContextItemSelected()方法相應菜單單擊事件3,調用registerForContextMenu()方法,爲視圖註冊上下文菜單
(2)Option Menu 代碼之選項菜單當用戶點擊設備上的菜單(menu)按鍵時,彈出的菜單就是選項菜單。選項菜單菜單項最多隻能有6個,超過第六個第六個帝宗顯示更多。步驟:
1,覆蓋Activity的onCreateOptionsMenu(Menu menu)方法,第一次打開時自動調用2,調用Menu的add()方法添加菜單項(MenuItem),可調用MenuItem的setIcon()方法設置圖標3,當菜單項(Menuitem)被選擇,調用onOptionsItemSelected()方法來響應事件
(3)Sub Menu 代碼之子菜單就是將相同功能的分組進行多級顯示的一種菜單(如:windows“文件”菜單中又有“新建”、“打開”等子菜單)特點:以上兩種可以加入子菜單子菜單不能嵌套子菜單----android系統,菜單隻有兩層子菜單不支持icon步驟:
1,onCreateOptionsMenu()方法,調用Menu的addSubMenu()方法添加子菜單項2,調用SubMenu的add()方法,添加子菜單(Sub Menu)3,onContextItemSelected(0方法相應菜單點擊事件