Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android Menus

Android Menus

編輯:Android開發實例

1.Options Menu.

 

通過按下手機上的MENU鍵,可以打開Options Menu。Options Menu最多只能在屏幕最下面顯示6個菜單項,稱為Icon Menu.如果添加了多於6個的菜單項,將通過"More"菜單項顯示,這種稱為Expanded Menu.當Options Menu第一次被打開時,系統將調用Activity的onCreateOptionsMenu(Menu menu)方法,在這個方法中可以通過配置一個XML文件,或者調用Menu的add()方法來添加你想要的Menu。Menu的add()方法將返回一個MenuItem對象,你用通過這個對象來配置一些其他屬性。比如:icon,shortcut,intent。Menu的add()方法很多,要注意的是itemId這個參數,它的唯一性。

 

當選擇了一個Options Menu時,會調用onOptionsItemSelected(MenuItem item)方法。如果想修改Options Menu,需要重寫onPrepareOptionsMenu()方法。

 

方式一,用add()添加:

 

  1. /* Creates the menu items */ 
  1. public boolean onCreateOptionsMenu(Menu menu) { 
  1.     menu.add(0, MENU_NEW_GAME, 0, "New Game"); 
  2.     menu.add(0, MENU_QUIT, 0, "Quit").setIcon(R.drawable.menu_quit_icon); 
  1.     return true; 
  1.  
  1. /* Handles item selections */ 
  1. public boolean onOptionsItemSelected(MenuItem item) { 
  1.     switch (item.getItemId()) { 
  1.     case MENU_NEW_GAME: 
  1.         newGame(); 
  1.         return true; 
  1.     case MENU_QUIT: 
  1.         quit(); 
  2.         return true; 
  3.     } 
  1.     return false; 

 

 

方式二,通過XML文件添加:

在res/menu/下新建options_menu.xml文件:

 

Xml代碼 

  1. <menu xmlns:android="http://schemas.android.com/apk/res/android"> 
  1.     <item android:id="@+id/new_game" 
  1.           android:title="New Game" /> 
  1.     <item android:id="@+id/quit" 
  2.           android:title="Quit" /> 
  1. </menu> 

 

在onCreateOptionsMenu()方法中,我們這樣寫:

 

Java代碼 

  1. public boolean onCreateOptionsMenu(Menu menu) { 
  1.     MenuInflater inflater = getMenuInflater(); 
  1.     inflater.inflate(R.menu.options_menu, menu); 
  1.     return true; 

 

 

2.Context Menu.

 

它需要注冊到某個View對象上,當長按這個View大概2秒時間,會出現這個Context Menu。為某個View注冊Context Menu是用registerForContextMenu(View view)方法來實現。Context Menu在顯示前都會調用onCreateContextMenu來生成menu。onContextItemSelected用來處理選中的菜單項。

 

注意:Context Menu不支持icons和shortcut keys.

 

Java代碼 

  1. public void onCreateContextMenu(ContextMenu menu, View v, 
  1.                                 ContextMenuInfo menuInfo) { 
  2.   super.onCreateContextMenu(menu, v, menuInfo); 
  1.   menu.add(0, EDIT_ID, 0, "Edit"); 
  1.   menu.add(0, DELETE_ID, 0,  "Delete"); 
  2.  
  1. public boolean onContextItemSelected(MenuItem item) { 
  1.   AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 
  2.   switch (item.getItemId()) { 
  1.   case EDIT_ID: 
  1.     editNote(info.id); 
  1.     return true; 
  2.   case DELETE_ID: 
  1.     deleteNote(info.id); 
  1.     return true; 
  1.   default: 
  1.     return super.onContextItemSelected(item); 
  1.   } 

 

注冊這個Context Menu:

 

registerForContextMenu(getListView()); 

 

這裡的 getListView()是ListActivity的方法,它將返回一個ListView.記住任何一個View對象都可以注冊一個Context Menu。

 

 

3.Submenus 

 

  1. public boolean onCreateOptionsMenu(Menu menu) { 
  1.   boolean result = super.onCreateOptionsMenu(menu); 
  1.  
  2.   SubMenu fileMenu = menu.addSubMenu("File"); 
  3.   SubMenu editMenu = menu.addSubMenu("Edit"); 
  4.   fileMenu.add(0,NEW_ID,0,"new"); 
  5.   fileMenu.add(0,OPEN_ID,0,"open"); 
  6.   fileMenu.add(0,SAV_ID,0,"save"); 
  7.   editMenu.add(0,UNDO_ID,0,"undo"); 
  8.   editMenu.add(0,REDO_ID,0,"redo"); 
  9.  
  10.   return result; 

 

 

4.Menu Features

 

Menu groups 菜單項分組的功能:

在用Menu的add()方法時,通過參數groupId的設置可以實現分組。setGroupVisible()用來顯示或者隱藏你的菜單組。setGroupEnabled()用來啟用或者禁用你的菜單組。setGroupCheckable()用來設置你的菜單項是否可選。 setGroupCheckable()方法有三個參數int group, boolean checkable, boolean exclusive。第一個參數是要設置的組,第二個參數是否可選,第三個參數為true表示單選,false表示多選。

Shortcut keys 快捷鍵:

我們還可以設置快捷鍵。使用setAlphabeticShortcut(char),setNumericShortcut(int),setShortcut(char,int)可以設置字符,數字,組合(字符+數字)鍵。注意:Context Menu不能添加快捷鍵。

 

轉自:http://www.cnblogs.com/feisky/archive/2010/07/12/1776014.html

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