Android應用程序資源——menu菜單資源

菜單Menu
Android手機用一個按鍵“Menu”專門來顯示菜單,所以,當應用程序設置了菜單,我們可以通過該按鍵來操作應用程序的菜單選項。
有兩種不同的實現方式:

訪問res中menu菜單資源
/res/menu/        存放爲應用程序定義各種菜單的資源,包括選項菜單、子菜單、上下文菜單資源
Android推薦使用XML來定義菜單,使用XML“定義菜單將會提供更好的解耦。

一、android中Menu菜單是隱藏的
在activity主界面按手機Menu鍵最多隻能顯示6個菜單項,設置6個以上,
彈出的帶圖標選項的菜單選項只能顯示當前5個菜單項,
第六個菜單項也是more菜單項(單擊會浮現出一個主界面之上的一個擴展項,
不顯示圖標,可以顯示單選框和複選框)

二、三種菜單類型:
 1,options menu(主菜單),通過按home鍵來顯示
    特點:只支持文字和圖標
        expanded menu,不支持icon
 2,context menu(上下文菜單)
    特點:在view上按上2s後顯示
        不支持icon和快捷鍵
3,sub menu(子菜單)
    特點:以上兩種可以加入子菜單
        子菜單不能嵌套子菜單----android系統,菜單隻有兩層
        子菜單不支持icon
三、菜單分組功能
把相似功能的菜單分成同一組,通過調用
setGroupCheckable,setGroupEnabled,setGroupVisible設置屬性,
無須單獨設置
四、菜單創建方式
創建方式有兩種:
1,通過在佈局文件中聲明創建
<menu>根元素,裏面嵌套<item>和<group>子元素,<item>可以嵌套<menu>形成子菜單
<group>(表示一個菜單組)元素的屬性說明:
    id:唯一標識該菜單組引用id
    menuCategory:對菜單進行分類,定義菜單的優先級,有效值爲container、system、secondary、alternative。
    orderInCategory:一個分類排序整數。
    checkableBehavior:選擇行爲,單選、多選還是其他。有效值爲none、all、single
    visible:是否可見,值true和false
    enabled:是否可用,true或false。
<item>表示菜單項。
    id:唯一標識該菜單組引用id
    menuCategory:菜單分類
    orderInCategory:分類排序
    title:菜單標題字符串
    titleCondensed:濃縮標題,適合標題太長的時候使用。
    icon:菜單的圖標
    alphabeticShortcut:字符快捷鍵
    numericShortcut:數字快捷鍵
    checkable:是否可選
    chexked:是否已經被選
    visible:是否可見,值true和false
    enabled:是否可用,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方法相應菜單點擊事件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章