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

Android Menus 2

編輯: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()添加:

 

/* Creates the menu items */
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, MENU_NEW_GAME, 0, "New Game");
    menu.add(0, MENU_QUIT, 0, "Quit").setIcon(R.drawable.menu_quit_icon);
    return true;
}

/* Handles item selections */
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case MENU_NEW_GAME:
        newGame();
        return true;
    case MENU_QUIT:
        quit();
        return true;
    }
    return false;
}

 

 

通過XML文件添加:

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

 

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

 

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

 

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);
    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.

 

public void onCreateContextMenu(ContextMenu menu, View v,
                                ContextMenuInfo menuInfo) {
  super.onCreateContextMenu(menu, v, menuInfo);
  menu.add(0, EDIT_ID, 0, "Edit");
  menu.add(0, DELETE_ID, 0,  "Delete");
}

public boolean onContextItemSelected(MenuItem item) {
  AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
  switch (item.getItemId()) {
  case EDIT_ID:
    editNote(info.id);
    return true;
  case DELETE_ID:
    deleteNote(info.id);
    return true;
  default:
    return super.onContextItemSelected(item);
  }
}

 

 注冊這個Context Menu:

 

registerForContextMenu(getListView());

 

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

 

3.Submenus

 

 

public boolean onCreateOptionsMenu(Menu menu) {
  boolean result = super.onCreateOptionsMenu(menu);

  SubMenu fileMenu = menu.addSubMenu("File");
  SubMenu editMenu = menu.addSubMenu("Edit");
  fileMenu.add("new");
  fileMenu.add("open");
  fileMenu.add("save");
  editMenu.add("undo");
  editMenu.add("redo");

  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://oldman.javaeye.com/blog/709254

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