工具欄選單
工具欄選單
新增字串資源
在\res\values\strings.xml中可新增App中使用到的字串資源,通過這種方式,可輕鬆實現語言的本地化。
<resources>
<string name="app_name">DialogTest</string>
<string name="action_settings">Settings</string>
</resources>
在XML檔案中定義選單
選單是一種類似於佈局的資源。建立選單定義檔案並放置在res/menu目錄下,Android會自動生成相應的資源ID。隨後,在程式碼中例項化選單時,就可以直接使用。
在專案工具視窗中,右鍵點選res目錄,選擇New->Android resource file選單項。在彈出的視窗介面,選擇Menu資源型別,並給資原始檔一個名稱,點選OK按鈕確認。
選單檔案格式
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.zj.dialogtest.MainActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:icon="@android:drawable/ic_menu_add"
android:title="@string/action_settings"
app:showAsAction="ifRoom|withText" />
</menu>
每個選單項用一個item表示,常用屬性如下:
- android:id 定義此選單項的id,程式碼中可以通過此id引用該選單項
- android:icon 定義此選單項的圖表
- android:title 定義此選單項的文字標題,值可以是純文字量,但是建議@string引用字串資源
- android:showAsAction 用於指定選單選項是顯示在工具欄上,還是隱藏於溢位選單。該屬性當前設定為ifRoom和withText的組合值,因此,只要空間足夠,選單項圖示及其文字描述都會顯示在工具欄上,如果空間僅夠顯示圖示,文字描述就不會顯示,如空間不夠顯示任何項,選單就會隱藏到溢位選單。
在程式碼中建立選單
在程式碼中,Activity類提供了管理選單的回撥函式。需要選項選單時,Android會呼叫Activity的onCreateOptionsMenu(Menu)方法建立選單。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//TODO:從資原始檔載入選單
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
響應選單項選擇
當選擇具體選單項時,會觸發onOptionsItemSelected(MenuItem)回撥方法。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (id == R.id.action_settings) {
//TODO:執行具體的選單動作
return true;
}
return super.onOptionsItemSelected(item);
}
層級式導航
Android應用中有兩種返回導航方式,一種是通過back按鈕回退,一種是通過頁面左上角<-按鈕回退。雖然兩者都能實現頁面回退,但是兩種方式的機制是大不相同的,效果也不一樣。
使用者點選back按鈕時,如下的intent會被建立:
Intent intent = new Intent(this, TargetActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
FLAG_ACTIVITY_CLEAR_TOP指示Android在回退棧中尋找指定的Activity例項。如果存在,則彈出棧內所有其它的activity,讓啟動的目標activity出現在棧頂(顯示在螢幕上)。
通過<-按鈕實現返回導航的方式被稱作層級式導航,可在應用內實現逐級向上導航。
實現層級式導航
在AndroidManifest.xml中註冊的Activity有個屬性android:parentActivityName,使用者指示點選<-按鈕後返回到哪個上級activity。
<activity
android:name=".ChildActivity"
android:label="@string/title_activity_child"
android:parentActivityName=".MainActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.zj.dialogtest.MainActivity" />
</activity>
相關文章
- 在PyQt中構建 Python 選單欄、選單和工具欄QTPython
- 選單欄防休眠工具:ScreenSaverNow for MacMac
- ScreenSaverNow for Mac(選單欄防休眠工具)Mac
- 多功能選單欄時鐘工具:Dato
- 系統選單欄網路工具:Airtool for MacAIMac
- Bartender 3 for Mac選單欄管理工具Mac
- Airtool for Mac系統選單欄網路工具AIMac
- mac選單欄語言翻譯工具:Linguist for MacMacNGUI
- 選單欄日曆提醒工具:Calendar 366 II for MacMac
- Boring Old Menu Bar for Mac(選單欄美化工具)Mac
- start11,自定義win11的選單欄和桌面欄工具
- Bartender 破解最新版5.0.48「選單欄管理工具」
- Launchey for Mac(選單欄上的熱鍵快速啟動工具)Mac
- cad選單欄和工具欄都不見了 cad功能區怎麼調出來
- Airtool for Mac(系統選單欄網路工具) 2.5.3啟用版AIMac
- Bartender 4 for Mac(Mac選單欄應用管理工具)中文Mac
- ScreenSaverNow for Mac(選單欄防休眠工具) v1.70啟用版Mac
- 選單欄快捷命令:QuickLinks for MacUIMac
- mac選單欄設定教程Mac
- PyQt5 之選單欄QT
- QuickLinks for Mac(選單欄快捷命令)UIMac
- 『言善信』Fiddler工具 — 3、Fiddler介面佈局詳解【選單欄】
- Mac選單欄應用管理工具:Bartender 4 中文版Mac
- JavaGUI——swing元件基礎(八)選單欄/選單/子選單元件JMenuBar/JMenu/JMenuItemJavaGUI元件
- 系統選單欄網路工具:Airtool for Mac v2.5.3啟用版AIMac
- Bartender 3 for Mac(選單欄管理工具) 3.1.25中文版Mac
- 多功能選單欄時鐘工具:Dato for Mac v5.1.3啟用版Mac
- Airtool for Mac(系統選單欄網路工具) v2.1啟用版AIMac
- CSS導航欄及下拉選單CSS
- win10資源管理器不顯示工具欄選單如何解決_win10怎麼讓資源管理器始終顯示工具欄選單Win10
- NSToolbar 只保留自定義工具欄選項
- win10滑鼠右鍵選單欄怎麼改 刪除右鍵選單欄無用選項的方法Win10
- mac選單欄語言翻譯工具:Linguist for Mac v3.0啟用版MacNGUI
- Mac必備小工具 eul 1.4.1中文版 (選單欄系統檢視工具)Mac
- 選單欄時鐘軟體:Dato for MacMac
- Bartender 3 for Mac選單欄整理軟體Mac
- HTML歷理 ICbA的側欄選單HTML
- Mac選單欄時鐘軟體:DatoMac