Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> android—Menu詳解與創建的事例

android—Menu詳解與創建的事例

編輯:Android開發實例

通過Android提供的NotePad示例應用,及幫助文檔中對菜單的相關描述,現將如何在我們的Androiod應用中定制我們自己的菜單,做一個小結。

 

一、菜單的生成

    對一個Android應用中的每一個屏幕,也就是說,對每一個Activity類,都會擁有一個默認菜單。在Activity類中,定義了幾個與菜單有關的方法,供繼承於Activity類的子類去重載,從而定制我們自己的菜單。這幾個方法為:

public boolean onCreateOptionsMenu(android.view.Menu menu);

public boolean onPrepareOptionsMenu(android.view.Menu menu);

public boolean onOptionsItemSelected(android.view.MenuItem item);

  為了生成我們自己的菜單,Android為我們提供了兩個時機點。當在Activity類實例啟動時,我們可以通過重載onCreateOptionsMenu()來定制我們的菜單;另外,也可以在菜單每次被調用時,對菜單中的項重新生成,通過重載onPrepareOptionsMenu來實現。對於第二種方式,由於每次調用時都要重新生成,對於那些不經常變化的菜單,效率就會比較低。看下面的代碼:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
   super.onCreateOptionsMenu(menu);
   menu.add(0, 0, “菜單項一”);
   menu.add(0, 1, “菜單項二”);
   menu.add(0, 2, “菜單項三”);
   return true;
}

    Menu.add()方法第一個參數表示給這個新增的菜單項分配一個分組號;第二個參數表示給這個新增的菜單項分配一個唯一標識id;第三個參數為菜單項的標題。

    我們可以通過調用Menu.setItemShown()或者Menu.setGroupShown()方法來顯示或隱藏一些菜單項。

    這裡要注意的一個地方是:菜單項的顯示順序是按代碼中添加的順序來的,也就是說Menu.add()方法只能在菜單的最後面新增一個菜單項。另外,第一個參數的分組標識,不會改變菜單項的顯示順序。
二、響應菜單項點擊

   當菜單顯示出來後,用戶點擊菜單中的某一菜單項,我們的菜單需要響應這個點擊事件。這個也很簡單,通過重載onOptionsItemSelected()方法來實現,直接上例子:

@Override
public boolean onOptionsItemSelected(Menu.Item item){
   switch (item.getId()) {
   case 0:
       showAlert(”Menu Item Clicked”, “菜單項一”, “ok”, null, false, null);
       return true;
   case 1:
       showAlert(”Menu Item Clicked”, “菜單項二”, “ok”, null, false, null);
       return true;
   case 2:
       showAlert(”Menu Item Clicked”, “菜單項三”, “ok”, null, false, null);
       return true;
   }
   return false;
}

    這裡,我們還可以通過調用Item.setAlphabeticShortcut()或Item.setNumericShortcut()方法來增加菜單項的快捷鍵操作。

    對響應菜單項點擊,還有另一個辦法,可以通過實現Runnable類()的一個子類,做為消息句柄來對菜單項點擊做響應,但這種辦法效率較低,不推薦這麼做。

三、增加子菜單

    我們還可以通過調用Menu.addSubMenu()方法,為某個菜單項添加子菜單,這個方法返回一個SubMenu實例,我們可以在這個SubMenu菜單中添加子菜單項。

    注:菜單只能有一級子菜單,不支持多級。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved