編輯:關於Android編程
OptionsMenu
在android的SDK中options menu 是這樣解釋的:Options menus: The icon menus do not support item check marks and only show the item's condensed title. The expanded menus (only available if six or more menu items are visible, reached via the 'More' item in the icon menu) do not show item icons, and item check marks are discouraged.
具體的操作表現就是 在android手機上按 menu 鍵時顯示的菜單,點擊相應的菜單可以進行相應的操作。
使用步驟
Option menu的使用比較簡單,首先在res文件夾下新建menu目錄,然後往裡面添加菜單的XML 文件。
[html]
?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/settings" android:title="@string/settings_label"
android:icon="@android:drawable/ic_menu_preferences"
android:alphabeticShortcut="s">
</item>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/settings" android:title="@string/settings_label"
android:icon="@android:drawable/ic_menu_preferences"
android:alphabeticShortcut="s">
</item>
</menu>item:每一個item對應一項菜單。
android:icon:用於指定菜單顯示的圖標。
android:title:菜單的標題,顯示在圖標下面。
android:alphabeticShortcut:菜單選擇的快捷鍵。
關於Menu的更多屬性請查看SDK上的 Menu Resource。
第二步是在Activity裡重寫 onCreateOptionsMenu 方法,並通過MenuInflater 將剛才的xml資源轉化為Menu 實例。並顯示在Activity裡
[java]
/**
* 創建系統菜單,該菜單通過按下Menu鍵顯示
*/
@Override
publicboolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
//通過MenuInflater將XML 實例化為 Menu Object
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
returntrue;
}
/**
* 創建系統菜單,該菜單通過按下Menu鍵顯示
*/
@Override
publicboolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
//通過MenuInflater將XML 實例化為 Menu Object
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
returntrue;
}運行模擬器點擊Menu鍵,就可以看到菜單目錄的顯示了。但是此時點擊菜單並沒有任何反應,原因是我們還沒添加對應的處理事件。給menu添加處理事件需要重寫public boolean onOptionsItemSelected(MenuItem item)方法。
[java]
/**
* 菜單點擊事件
*/
@Override
publicboolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.about:
Logger.d("Displaying the about box");
// 顯示關於頁
displayAboutBox();
returntrue;
case R.id.help:
Logger.d("Displaying the help dialog");
// 顯示到幫帳頁
displayHelpDialog();
returntrue;
case R.id.settings:
Logger.d("Displaying the settings");
// 跳轉到配置頁
displaySettings();
returntrue;
case R.id.teams:
Logger.d("Displaying the team configuration");
// 跳轉到團隊配置頁
displayTeamConfiguration();
returntrue;
case R.id.quit:
Logger.d("Quitting");
// 退出程序
finish();
returntrue;
default:
Logger.e("Unknown menu item selected");
//返回False交由系統正常處理菜單,返回True則由本程序處理
returnfalse;
}
}
/**
* 菜單點擊事件
*/
@Override
publicboolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.about:
Logger.d("Displaying the about box");
// 顯示關於頁
displayAboutBox();
returntrue;
case R.id.help:
Logger.d("Displaying the help dialog");
// 顯示到幫帳頁
displayHelpDialog();
returntrue;
case R.id.settings:
Logger.d("Displaying the settings");
// 跳轉到配置頁
displaySettings();
returntrue;
case R.id.teams:
Logger.d("Displaying the team configuration");
// 跳轉到團隊配置頁
displayTeamConfiguration();
returntrue;
case R.id.quit:
Logger.d("Quitting");
// 退出程序
finish();
returntrue;
default:
Logger.e("Unknown menu item selected");
//返回False交由系統正常處理菜單,返回True則由本程序處理
returnfalse;
}
}根據MenuItem的 getItemId()獲取對應menu項的ID,這個id值對應xml中的 android:id。這樣菜單功能就完成實現了,建議將一些不常用的功能鏈接放到菜單中例如:about us 、help 等等,因為用戶可能不懂得如何使用菜單。
Activities提供了一種方便管理的創建、保存、回復的對話框機制,例如 onCreateDialog(int), onPrepareDialog(int, Dialo
高效計算——RenderScriptRenderScript是安卓平台上很受谷歌推薦的一個高效計算平台,它能夠自動把計算任務分配到各個可用的計算核
以前對於這個機制理解不夠深刻,現在重新整理下思路。 一、建模 我理解的接口回調就是,我這個類實現了一個接口裡的方法doSomething,然後注冊到你這裡,然後我就去做別
手機qq安裝失敗怎麼辦?手機qq安裝後打不開是什麼原因?下面我們一起看看解決方法吧!手機安裝失敗原因及解決方法1、證書過期(或者未生效): 下載安裝前將手