歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android中的Menu(菜單)的三種類型菜單的學習

今天學習一下菜單組件,在Android中的菜單中有三種①:OptionMenu(選項菜單)②:ContextMenu(上下文菜單) ③:SubMenu(子菜單)

下面分別來學一下

一:OptionMenu(選項菜單) 當我們使用手機的時候,按著手機上面的Menu,彈出的菜單就是選項菜單。但是我們一次性能顯示菜單選項只能是6個

如果我們設置的超過6個時候,第六個菜單選項會自動設置成更多,然後我們點擊更多的時候,剩下來的選項菜單就會選項.。先看下選項菜單的測試截圖

   

   下面我們來創建一個選項菜單,步驟如下:

   ①:先去覆蓋Activity中的onCreateOptionsMenu(),但是這個方法只會在第一次調用的時候會被實例化,當實例化時候,就不會在被調用了

   ②:調用add()來添加菜單選項.add(groupId, itemId, order, titleRes)方法中個參數的意思是,

 *      @param group
 *            : 選項組號,一般都設置成0就OK啦
 * @param itenId
 *            : 選項的Id 很重要
 * @param order
 *            :順序,一般來說都設置0就行了
 * @param titelRes
 *            : 選項的標題名字
 */

    ③:覆蓋onCreateOptionsMenu(Menu menu)menu.getItemId()來獲取選項的Id


 下面來看下Demo源代碼:

  1. package com.jiangqq.menu;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.Menu;  
  6. import android.view.MenuItem;  
  7. import android.widget.Toast;  
  8.   
  9. /** 
  10.  * ①:直接去覆蓋public boolean onCreateOptionsMenu(Menu menu) { code......}, 
  11.  *   這個方法,需要注意的是,這個方法如果覆蓋的了,只會被創建一次,也就是說, 選項菜單只會去被實例化一次,,,之後就不會被去調用了 
  12.  * ②:調用Menu中的add()方法,來添加每一個菜單選項, add(groupId, itemId, order, titleRes) group: 
  13.  *     選項組號,一般都設置成0就OK啦 itenId: 選項的Id 很重要 order:順序,一般來說都設置0就行了 titelRes: 選項的標題名字 
  14.  * ③:當我們去點擊某項的選項的時候,覆蓋重寫onOptionsItemSelected(MenuItem item)這個方法去實現點擊事件 
  15.  *  
  16.  * @author jiangqq 
  17.  *  
  18.  */  
  19. public class Option_Menu_Activity extends Activity {  
  20.     // 點擊菜單選項的常量Id   
  21.     private static final int menu1 = 1;  
  22.     private static final int menu2 = 2;  
  23.     private static final int menu3 = 3;  
  24.     private static final int menu4 = 4;  
  25.     private static final int menu5 = 5;  
  26.     private static final int menu6 = 6;  
  27.     private static final int menu7 = 7;  
  28.   
  29.     public void onCreate(Bundle savedInstanceState) {  
  30.         super.onCreate(savedInstanceState);  
  31.         setContentView(R.layout.main);  
  32.   
  33.     }  
  34.   
  35.     /** 
  36.      * @param group 
  37.      *            : 選項組號,一般都設置成0就OK啦 
  38.      * @param itenId 
  39.      *            : 選項的Id 很重要 
  40.      * @param order 
  41.      *            :順序,一般來說都設置0就行了 
  42.      * @param titelRes 
  43.      *            : 選項的標題名字 
  44.      */  
  45.     public boolean onCreateOptionsMenu(Menu menu) {  
  46.   
  47.         menu.add(0, menu1, 0"Menu1");  
  48.         menu.add(0, menu2, 0"Menu2");  
  49.         menu.add(0, menu3, 0"Menu3");  
  50.         menu.add(0, menu4, 0"Menu4");  
  51.         menu.add(0, menu5, 0"Menu5");  
  52.         menu.add(0, menu6, 0"Menu6");  
  53.         menu.add(0, menu7, 0"Menu7");  
  54.         return true;  
  55.   
  56.     }  
  57.   
  58.     /** 
  59.      *  
  60.      * @param item 
  61.      *            .getItemId() 獲取被點擊的Id 
  62.      */  
  63.     public boolean onOptionsItemSelected(MenuItem item) {  
  64.         switch (item.getItemId()) {  
  65.         case menu1:  
  66.             Toast.makeText(this"你點擊Menu1", Toast.LENGTH_LONG).show();  
  67.             break;  
  68.         case menu2:  
  69.             Toast.makeText(this"你點擊Menu2", Toast.LENGTH_LONG).show();  
  70.             break;  
  71.         case menu3:  
  72.             Toast.makeText(this"你點擊Menu3", Toast.LENGTH_LONG).show();  
  73.             break;  
  74.         case menu4:  
  75.             Toast.makeText(this"你點擊Menu4", Toast.LENGTH_LONG).show();  
  76.             break;  
  77.         case menu5:  
  78.             Toast.makeText(this"你點擊Menu5", Toast.LENGTH_LONG).show();  
  79.             break;  
  80.         case menu6:  
  81.             Toast.makeText(this"你點擊Menu6", Toast.LENGTH_LONG).show();  
  82.             break;  
  83.         case menu7:  
  84.             Toast.makeText(this"你點擊Menu7", Toast.LENGTH_LONG).show();  
  85.             break;  
  86.         }  
  87.         return true;  
  88.     }  
  89. }   
Copyright © Linux教程網 All Rights Reserved