Menu初步

 Android系統中有三種菜單-----Contex Menus ,情境菜單:不支持菜單快捷鍵和圖標。 Options Menus ,選項菜單:支持圖標,但不支持菜單項選中標記。 Sub menus ,子菜單,不支持圖標,不能再有子菜單。

     OptionsMenus通過菜單快捷鍵觸發,由ActivityonCreateOptionsMenu(Menu)方法創建。

     ContexMenusActivityonCreateContextMenu(ContextMenu, View ,ContextMenuInfo)創建,創建該Menu必須對指定的View進行註冊,方法是:registerForContextMenu(view)

        SubMenus以上兩種Menu都可以嵌入子菜單,當時子菜單中不能嵌入子菜單

 

 下面主要是介紹解析指定XMLMenu對象

MenuInflater:用於將xml解析成Menu工具類,通過ActivitygetMenuInflater()方法可以過得該對象:

      MenuInflater inflater = getMenuInflater();

讓後通過該對象解析指定的對象

       inflater.inflate(int,Menu);

int:表示xml文件的資源id

Menu:表示將xml解析成的Menu對象,xml文件中的元素或者subMenu都被添加到該Menu中去。 

  Menu元素監聽

  OptionMenu菜單:onOptionsItemSelected(MenuItem)

  ContextMenus菜單:onContextItemSelected(MenuItem),另外也可以通過重寫ViewonCreateContextMenu方法來註冊該ViewMenu事件

  其中MenuItem表示用戶選中的菜單的元素,可以通過MenuItemId來辨別每個Item的操作事件,也可以通過ItemGroupID來確定操作事件。

  例如:

    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) { 

               case R.id.jump:

     Toast.makeText(this, "Jump up in the air!", Toast.LENGTH_SHORT).show();

                return true;

}

}

Menu(主要方法)

hasVisibleItems():判斷該Menu中是否有元素是可見的

findItem(int id):找到指定的IDItem

isShortcutKey(int, KeyEvent):爲該Menu設置一個快捷鍵,int表示快捷鍵的字符碼

removeGroup(int):移除指定的ID組的item

removeItem(int):移除指定idItem

 

Xml文件中定義Menu

  Menuxml文件一定要放在res/menu目錄下面

  Xml文件由menu標籤、group標籤、Item標籤組成

   Menuxml文件的根目錄

   Group:定義該menugroup屬性

      Item:定義該menuitem的屬性

 

android:id:表示該groupitemid

android:checkableBehavior:表示在group下面的item可選的元素

     single:表示單一選擇

   all:表示所有元素都被選擇

   none:表示沒有元素被選擇

android:visible:表示group/item是否可見

android:enabled:表示group/item是否被激活

android:titleItem的主題內容

android:icon:表示Item的圖像

android:checked:表示該item被選

android:alphabeticShortcut/android:numericShortcut:表示item的快捷鍵設置、

 

如下代碼:

 

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/group"    
android:checkableBehavior="single"
android:visible="true"
android:enabled="true"    
>
<item android:id="@+id/jump"
                android:title="@string/jump"
                android:alphabeticShortcut="s"
                 />
        <item android:id="@+id/dive"
                android:title="@string/dive" />
     </group>
</menu>

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