編輯: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());
這裡的
Context Menu。getListView()
是ListActivity的方法,它將返回一個ListView.記住任何一個View對象都可以注冊一個
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
一、概述 近期注意到QQ新版使用了沉浸式狀態欄
本文實例講述了Android編程實現ImageView圖片拋物線動畫效果的方法。分享給大家供大家參考,具體如下: 想實現拋物線動畫,必須知道拋物線的方程,這時候數
繼前一篇文章講到Android上的SQLite分頁讀取,其功能只是用文本框顯示數據而已。本文就講得更加深入些,實現並封裝一個SQL分頁表格控件,不僅支持分頁還是以
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放