今天學習一下菜單組件,在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源代碼:
- package com.jiangqq.menu;
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.widget.Toast;
-
- /**
- * ①:直接去覆蓋public boolean onCreateOptionsMenu(Menu menu) { code......},
- * 這個方法,需要注意的是,這個方法如果覆蓋的了,只會被創建一次,也就是說, 選項菜單只會去被實例化一次,,,之後就不會被去調用了
- * ②:調用Menu中的add()方法,來添加每一個菜單選項, add(groupId, itemId, order, titleRes) group:
- * 選項組號,一般都設置成0就OK啦 itenId: 選項的Id 很重要 order:順序,一般來說都設置0就行了 titelRes: 選項的標題名字
- * ③:當我們去點擊某項的選項的時候,覆蓋重寫onOptionsItemSelected(MenuItem item)這個方法去實現點擊事件
- *
- * @author jiangqq
- *
- */
- public class Option_Menu_Activity extends Activity {
- // 點擊菜單選項的常量Id
- private static final int menu1 = 1;
- private static final int menu2 = 2;
- private static final int menu3 = 3;
- private static final int menu4 = 4;
- private static final int menu5 = 5;
- private static final int menu6 = 6;
- private static final int menu7 = 7;
-
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- }
-
- /**
- * @param group
- * : 選項組號,一般都設置成0就OK啦
- * @param itenId
- * : 選項的Id 很重要
- * @param order
- * :順序,一般來說都設置0就行了
- * @param titelRes
- * : 選項的標題名字
- */
- public boolean onCreateOptionsMenu(Menu menu) {
-
- menu.add(0, menu1, 0, "Menu1");
- menu.add(0, menu2, 0, "Menu2");
- menu.add(0, menu3, 0, "Menu3");
- menu.add(0, menu4, 0, "Menu4");
- menu.add(0, menu5, 0, "Menu5");
- menu.add(0, menu6, 0, "Menu6");
- menu.add(0, menu7, 0, "Menu7");
- return true;
-
- }
-
- /**
- *
- * @param item
- * .getItemId() 獲取被點擊的Id
- */
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case menu1:
- Toast.makeText(this, "你點擊Menu1", Toast.LENGTH_LONG).show();
- break;
- case menu2:
- Toast.makeText(this, "你點擊Menu2", Toast.LENGTH_LONG).show();
- break;
- case menu3:
- Toast.makeText(this, "你點擊Menu3", Toast.LENGTH_LONG).show();
- break;
- case menu4:
- Toast.makeText(this, "你點擊Menu4", Toast.LENGTH_LONG).show();
- break;
- case menu5:
- Toast.makeText(this, "你點擊Menu5", Toast.LENGTH_LONG).show();
- break;
- case menu6:
- Toast.makeText(this, "你點擊Menu6", Toast.LENGTH_LONG).show();
- break;
- case menu7:
- Toast.makeText(this, "你點擊Menu7", Toast.LENGTH_LONG).show();
- break;
- }
- return true;
- }
- }