菜單資源定義可通過
MenuInflater
進行擴充的應用菜單,包括選項菜單、上下文菜單和子菜單。
有關(guān)使用菜單的指南,請參閱菜單開發(fā)者指南。
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站建設、
外貿(mào)營銷網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)
大邑縣免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
- 文件位置:
res/menu/filename.xml
該文件名將用作資源 ID。- 編譯后的資源數(shù)據(jù)類型:
- 指向
Menu
(或其子類)資源的資源指針。 - 資源引用:
- 在 Java 中:
R.menu.filename
在 XML 中:@[package:]menu.filename
- 語法:
- <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@[+][package:]id/resource_name"
android:title="string"
android:titleCondensed="string"
android:icon="@[package:]drawable/drawable_resource_name"
android:onClick="method name"
android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
android:actionLayout="@[package:]layout/layout_resource_name"
android:actionViewClass="class name"
android:actionProviderClass="class name"
android:alphabeticShortcut="string"
android:alphabeticModifiers=["META" | "CTRL" | "ALT" | "SHIFT" | "SYM" | "FUNCTION"]
android:numericShortcut="string"
android:numericModifiers=["META" | "CTRL" | "ALT" | "SHIFT" | "SYM" | "FUNCTION"]
android:checkable=["true" | "false"]
android:visible=["true" | "false"]
android:enabled=["true" | "false"]
android:menuCategory=["container" | "system" | "secondary" | "alternative"]
android:orderInCategory="integer" />
<group android:id="@[+][package:]id/resource name"
android:checkableBehavior=["none" | "all" | "single"]
android:visible=["true" | "false"]
android:enabled=["true" | "false"]
android:menuCategory=["container" | "system" | "secondary" | "alternative"]
android:orderInCategory="integer" >
<item />
</group>
<item >
<menu>
<item />
</menu>
</item>
</menu>
- 元素:
- 必需。該元素必須是根節(jié)點。包含
<item>
和/或 <group>
元素。屬性:
xmlns:android
- XML 命名空間。必需。定義 XML 命名空間,該命名空間必須為
"http://schemas.android.com/apk/res/android"
。
<item>
- 菜單項??赡馨?nbsp;
<menu>
元素(用于子菜單)。必須是 <menu>
或 <group>
元素的子元素。屬性:
android:id
- 資源 ID。唯一資源 ID。要為此項創(chuàng)建新的資源 ID,請使用以下形式:
"@+id/name"
。加號表示應將其創(chuàng)建為新 ID。 android:title
- 字符串資源。字符串資源或原始字符串形式的菜單標題。
android:titleCondensed
- 字符串資源。字符串資源或原始字符串形式的壓縮標題。此標題在正常標題過長的情況下使用。
android:icon
- 可繪制資源。用作菜單項圖標的圖片。
android:onClick
- 方法名稱。點擊此菜單項時調(diào)用的方法。此方法必須在 Activity 中聲明為公共方法,并接受
MenuItem
作為其唯一參數(shù),該參數(shù)指示所點擊的項。此方法優(yōu)先于對 onOptionsItemSelected()
的標準回調(diào)。請參見頁面結(jié)尾處的示例。警告:如果您使用 ProGuard(或類似工具)混淆代碼,切記不要重命名在此屬性中指定的方法,因為這樣會破壞功能。
在 API 級別 11 中引入。
android:showAsAction
- 關(guān)鍵字。指示此項應在應用欄中顯示為操作項的時機和方式。菜單項只有在 Activity 包含應用欄時才能顯示為操作項。有效值:
值 | 說明 |
---|
ifRoom | 只有在應用欄中有空間的情況下,才將此項放置其中。如果沒有足夠的空間來容納標記為 "ifRoom" 的所有項,則 orderInCategory 值最低的項會顯示為操作,其余項將顯示在溢出菜單中。 |
withText | 此外,還會隨操作項添加標題文本(由 android:title 定義)。您可以將此值與某個其他值一起作為標記集添加,用豎線 | 分隔。 |
never | 不得將此項放在應用欄中,而應將其列在應用欄的溢出菜單中。 |
always | 始終將此項放在應用欄中。除非此項必須始終顯示在操作欄中,否則請勿使用該值。將多個項設置為始終顯示為操作項,會導致它們與應用欄中的其他界面重疊。 |
collapseActionView | 與此操作項相關(guān)聯(lián)的操作視圖(由 android:actionLayout 或 android:actionViewClass 聲明)是可收起的。 在 API 級別 14 中引入。 |
如需了解詳情,請參閱添加應用欄培訓課程。
在 API 級別 11 中引入。
android:actionLayout
- 布局資源。用作操作視圖的布局。
如需了解詳情,請參閱操作視圖和操作提供器。
在 API 級別 11 中引入。
android:actionViewClass
- 類名稱。要用作操作視圖的
View
的完全限定類名稱。例如,"android.widget.SearchView"
表示將使用 SearchView
作為操作視圖。如需了解詳情,請參閱操作視圖和操作提供器。
警告:如果您使用 ProGuard(或類似工具)混淆代碼,切記不要重命名在此屬性中指定的類,因為這樣會破壞功能。
在 API 級別 11 中引入。
android:actionProviderClass
- 類名稱。要用于代替操作項的
ActionProvider
的完全限定類名稱。例如,"android.widget.ShareActionProvider"
表示將使用 ShareActionProvider
。如需了解詳情,請參閱操作視圖和操作提供器。
警告:如果您使用 ProGuard(或類似工具)混淆代碼,切記不要重命名在此屬性中指定的類,因為這樣會破壞功能。
在 API 級別 14 中引入。
android:alphabeticShortcut
- 字符。字母快捷鍵的字符。
android:numericShortcut
- 整數(shù)。數(shù)字快捷鍵的數(shù)字。
android:alphabeticModifiers
- 關(guān)鍵字。菜單項的字母快捷鍵的輔助鍵。默認值對應于 Control 鍵。有效值:
值 | 說明 |
---|
META | 對應于 Meta 元鍵 |
CTRL | 對應于 Control 元鍵 |
ALT | 對應于 Alt 元鍵 |
SHIFT | 對應于 Shift 元鍵 |
SYM | 對應于 Sym 元鍵 |
FUNCTION | 對應于 Function 元鍵 |
注意:您可以在一個屬性中指定多個關(guān)鍵字。例如,android:alphabeticModifiers="CTRL|SHIFT"
表示要觸發(fā)相應的菜單項,用戶需要同時按下 Control 和 Shift 元鍵以及快捷鍵。
您可以使用 setAlphabeticShortcut()
方法以編程方式設置屬性值。要詳細了解 alphabeticModifier
屬性,請轉(zhuǎn)到 alphabeticModifiers
。
android:numericModifiers
- 關(guān)鍵字。菜單項的數(shù)字快捷鍵的輔助鍵。 默認值對應于 Control 鍵。有效值:
值 | 說明 |
---|
META | 對應于 Meta 元鍵 |
CTRL | 對應于 Control 元鍵 |
ALT | 對應于 Alt 元鍵 |
SHIFT | 對應于 Shift 元鍵 |
SYM | 對應于 Sym 元鍵 |
FUNCTION | 對應于 Function 元鍵 |
注意:您可以在一個屬性中指定多個關(guān)鍵字。例如,android:numericModifiers="CTRL|SHIFT"
表示要觸發(fā)相應的菜單項,用戶需要同時按下 Control 和 Shift 元鍵以及快捷鍵。
您可以使用 setNumericShortcut()
方法以編程方式設置屬性值。要詳細了解 numericModifier
屬性,請轉(zhuǎn)到 numericModifiers
。
android:checkable
- 布爾值。如果該項可勾選,則為“true”。
android:checked
- 布爾值。如果默認情況下該項為勾選狀態(tài),則為“true”。
android:visible
- 布爾值。如果默認情況下該項可見,則為“true”。
android:enabled
- 布爾值。如果默認情況下該項為啟用狀態(tài),則為“true”。
android:menuCategory
- 關(guān)鍵字。對應于
Menu
CATEGORY_*
常量的值,這些常量用于定義項的優(yōu)先級。有效值:
值 | 說明 |
---|
container | 這類項歸屬于容器。 |
system | 這類項由系統(tǒng)提供。 |
secondary | 這類項是用戶提供的次要(不常用)選項。 |
alternative | 這類項是對當前顯示的數(shù)據(jù)的替代操作。 |
android:orderInCategory
- 整數(shù)。項在組內(nèi)的“重要性”順序。
<group>
- 一個菜單組,用于創(chuàng)建一組具有相同特征(例如是否可見、是否啟用或是否可勾選)的項。包含一個或多個
<item>
元素。必須是 <menu>
元素的子元素。屬性:
android:id
- 資源 ID。唯一資源 ID。要為此項創(chuàng)建新的資源 ID,請使用以下形式:
"@+id/name"
。加號表示應將其創(chuàng)建為新 ID。 android:checkableBehavior
- 關(guān)鍵字。組的可勾選行為類型。有效值:
值 | 說明 |
---|
none | 不可勾選 |
all | 可以勾選所有項(使用復選框) |
single | 只能勾選一項(使用單選按鈕) |
android:visible
- 布爾值。如果組可見,則為“true”。
android:enabled
- 布爾值。如果組為啟用狀態(tài),則為“true”。
android:menuCategory
- 關(guān)鍵字。對應于
Menu
CATEGORY_*
常量的值,這些常量用于定義組的優(yōu)先級。有效值:
值 | 說明 |
---|
container | 這類組歸屬于容器。 |
system | 這類組由系統(tǒng)提供。 |
secondary | 這類組是用戶提供的次要(不常用)選項。 |
alternative | 這類組是對當前顯示的數(shù)據(jù)的替代操作。 |
android:orderInCategory
- 整數(shù)。項在類別中的默認順序。
- 示例:
- 保存在
res/menu/example_menu.xml
的 XML 文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/item1"
android:title="@string/item1"
android:icon="@drawable/group_item1_icon"
app:showAsAction="ifRoom|withText"/>
<group android:id="@+id/group">
<item android:id="@+id/group_item1"
android:onClick="onGroupItemClick"
android:title="@string/group_item1"
android:icon="@drawable/group_item1_icon" />
<item android:id="@+id/group_item2"
android:onClick="onGroupItemClick"
android:title="@string/group_item2"
android:icon="@drawable/group_item2_icon" />
</group>
<item android:id="@+id/submenu"
android:title="@string/submenu_title"
app:showAsAction="ifRoom|withText" >
<menu>
<item android:id="@+id/submenu_item1"
android:title="@string/submenu_item1" />
</menu>
</item>
</menu>
以下應用代碼會通過 onCreateOptionsMenu(Menu)
回調(diào)擴充菜單,還會聲明其中兩個項的點擊回調(diào):
java代碼:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.example_menu, menu);
return true;
}
public void onGroupItemClick(MenuItem item) {
// One of the group items (using the onClick attribute) was clicked
// The item parameter passed here indicates which item it is
// All other menu item clicks are handled by <code><a href="/reference/android/app/Activity.html#onOptionsItemSelected(android.view.MenuItem)">onOptionsItemSelected()</a></code>
}
kotlin代碼:
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.example_menu, menu)
return true
}
fun onGroupItemClick(item: MenuItem) {
// One of the group items (using the onClick attribute) was clicked
// The item parameter passed here indicates which item it is
// All other menu item clicks are handled by <code><a href="/reference/android/app/Activity.html#onOptionsItemSelected(android.view.MenuItem)">onOptionsItemSelected()</a></code>
}
當前題目:Android復習(二)應用資源——>菜單-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://jinyejixie.com/article22/dipcjc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設計公司、建站公司、企業(yè)網(wǎng)站制作、網(wǎng)站營銷、手機網(wǎng)站建設、云服務器
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)