菜單資源定義可通過(guò)
MenuInflater
進(jìn)行擴(kuò)充的應(yīng)用菜單,包括選項(xiàng)菜單、上下文菜單和子菜單。
有關(guān)使用菜單的指南,請(qǐng)參閱菜單開(kāi)發(fā)者指南。
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、
外貿(mào)營(yíng)銷網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)
大邑縣免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
- 文件位置:
res/menu/filename.xml
該文件名將用作資源 ID。- 編譯后的資源數(shù)據(jù)類型:
- 指向
Menu
(或其子類)資源的資源指針。 - 資源引用:
- 在 Java 中:
R.menu.filename
在 XML 中:@[package:]menu.filename
- 語(yǔ)法:
-
- 元素:
- 必需。該元素必須是根節(jié)點(diǎn)。包含
和/或
元素。屬性:
xmlns:android
- XML 命名空間。必需。定義 XML 命名空間,該命名空間必須為
"http://schemas.android.com/apk/res/android"
。
- 菜單項(xiàng)??赡馨?nbsp;
元素(用于子菜單)。必須是
或
元素的子元素。屬性:
android:id
- 資源 ID。唯一資源 ID。要為此項(xiàng)創(chuàng)建新的資源 ID,請(qǐng)使用以下形式:
"@+id/name"
。加號(hào)表示應(yīng)將其創(chuàng)建為新 ID。 android:title
- 字符串資源。字符串資源或原始字符串形式的菜單標(biāo)題。
android:titleCondensed
- 字符串資源。字符串資源或原始字符串形式的壓縮標(biāo)題。此標(biāo)題在正常標(biāo)題過(guò)長(zhǎng)的情況下使用。
android:icon
- 可繪制資源。用作菜單項(xiàng)圖標(biāo)的圖片。
android:onClick
- 方法名稱。點(diǎn)擊此菜單項(xiàng)時(shí)調(diào)用的方法。此方法必須在 Activity 中聲明為公共方法,并接受
MenuItem
作為其唯一參數(shù),該參數(shù)指示所點(diǎn)擊的項(xiàng)。此方法優(yōu)先于對(duì) onOptionsItemSelected()
的標(biāo)準(zhǔn)回調(diào)。請(qǐng)參見(jiàn)頁(yè)面結(jié)尾處的示例。警告:如果您使用 ProGuard(或類似工具)混淆代碼,切記不要重命名在此屬性中指定的方法,因?yàn)檫@樣會(huì)破壞功能。
在 API 級(jí)別 11 中引入。
android:showAsAction
- 關(guān)鍵字。指示此項(xiàng)應(yīng)在應(yīng)用欄中顯示為操作項(xiàng)的時(shí)機(jī)和方式。菜單項(xiàng)只有在 Activity 包含應(yīng)用欄時(shí)才能顯示為操作項(xiàng)。有效值:
值 | 說(shuō)明 |
---|
ifRoom | 只有在應(yīng)用欄中有空間的情況下,才將此項(xiàng)放置其中。如果沒(méi)有足夠的空間來(lái)容納標(biāo)記為 "ifRoom" 的所有項(xiàng),則 orderInCategory 值最低的項(xiàng)會(huì)顯示為操作,其余項(xiàng)將顯示在溢出菜單中。 |
withText | 此外,還會(huì)隨操作項(xiàng)添加標(biāo)題文本(由 android:title 定義)。您可以將此值與某個(gè)其他值一起作為標(biāo)記集添加,用豎線 | 分隔。 |
never | 不得將此項(xiàng)放在應(yīng)用欄中,而應(yīng)將其列在應(yīng)用欄的溢出菜單中。 |
always | 始終將此項(xiàng)放在應(yīng)用欄中。除非此項(xiàng)必須始終顯示在操作欄中,否則請(qǐng)勿使用該值。將多個(gè)項(xiàng)設(shè)置為始終顯示為操作項(xiàng),會(huì)導(dǎo)致它們與應(yīng)用欄中的其他界面重疊。 |
collapseActionView | 與此操作項(xiàng)相關(guān)聯(lián)的操作視圖(由 android:actionLayout 或 android:actionViewClass 聲明)是可收起的。 在 API 級(jí)別 14 中引入。 |
如需了解詳情,請(qǐng)參閱添加應(yīng)用欄培訓(xùn)課程。
在 API 級(jí)別 11 中引入。
android:actionLayout
- 布局資源。用作操作視圖的布局。
如需了解詳情,請(qǐng)參閱操作視圖和操作提供器。
在 API 級(jí)別 11 中引入。
android:actionViewClass
- 類名稱。要用作操作視圖的
View
的完全限定類名稱。例如,"android.widget.SearchView"
表示將使用 SearchView
作為操作視圖。如需了解詳情,請(qǐng)參閱操作視圖和操作提供器。
警告:如果您使用 ProGuard(或類似工具)混淆代碼,切記不要重命名在此屬性中指定的類,因?yàn)檫@樣會(huì)破壞功能。
在 API 級(jí)別 11 中引入。
android:actionProviderClass
- 類名稱。要用于代替操作項(xiàng)的
ActionProvider
的完全限定類名稱。例如,"android.widget.ShareActionProvider"
表示將使用 ShareActionProvider
。如需了解詳情,請(qǐng)參閱操作視圖和操作提供器。
警告:如果您使用 ProGuard(或類似工具)混淆代碼,切記不要重命名在此屬性中指定的類,因?yàn)檫@樣會(huì)破壞功能。
在 API 級(jí)別 14 中引入。
android:alphabeticShortcut
- 字符。字母快捷鍵的字符。
android:numericShortcut
- 整數(shù)。數(shù)字快捷鍵的數(shù)字。
android:alphabeticModifiers
- 關(guān)鍵字。菜單項(xiàng)的字母快捷鍵的輔助鍵。默認(rèn)值對(duì)應(yīng)于 Control 鍵。有效值:
值 | 說(shuō)明 |
---|
META | 對(duì)應(yīng)于 Meta 元鍵 |
CTRL | 對(duì)應(yīng)于 Control 元鍵 |
ALT | 對(duì)應(yīng)于 Alt 元鍵 |
SHIFT | 對(duì)應(yīng)于 Shift 元鍵 |
SYM | 對(duì)應(yīng)于 Sym 元鍵 |
FUNCTION | 對(duì)應(yīng)于 Function 元鍵 |
注意:您可以在一個(gè)屬性中指定多個(gè)關(guān)鍵字。例如,android:alphabeticModifiers="CTRL|SHIFT"
表示要觸發(fā)相應(yīng)的菜單項(xiàng),用戶需要同時(shí)按下 Control 和 Shift 元鍵以及快捷鍵。
您可以使用 setAlphabeticShortcut()
方法以編程方式設(shè)置屬性值。要詳細(xì)了解 alphabeticModifier
屬性,請(qǐng)轉(zhuǎn)到 alphabeticModifiers
。
android:numericModifiers
- 關(guān)鍵字。菜單項(xiàng)的數(shù)字快捷鍵的輔助鍵。 默認(rèn)值對(duì)應(yīng)于 Control 鍵。有效值:
值 | 說(shuō)明 |
---|
META | 對(duì)應(yīng)于 Meta 元鍵 |
CTRL | 對(duì)應(yīng)于 Control 元鍵 |
ALT | 對(duì)應(yīng)于 Alt 元鍵 |
SHIFT | 對(duì)應(yīng)于 Shift 元鍵 |
SYM | 對(duì)應(yīng)于 Sym 元鍵 |
FUNCTION | 對(duì)應(yīng)于 Function 元鍵 |
注意:您可以在一個(gè)屬性中指定多個(gè)關(guān)鍵字。例如,android:numericModifiers="CTRL|SHIFT"
表示要觸發(fā)相應(yīng)的菜單項(xiàng),用戶需要同時(shí)按下 Control 和 Shift 元鍵以及快捷鍵。
您可以使用 setNumericShortcut()
方法以編程方式設(shè)置屬性值。要詳細(xì)了解 numericModifier
屬性,請(qǐng)轉(zhuǎn)到 numericModifiers
。
android:checkable
- 布爾值。如果該項(xiàng)可勾選,則為“true”。
android:checked
- 布爾值。如果默認(rèn)情況下該項(xiàng)為勾選狀態(tài),則為“true”。
android:visible
- 布爾值。如果默認(rèn)情況下該項(xiàng)可見(jiàn),則為“true”。
android:enabled
- 布爾值。如果默認(rèn)情況下該項(xiàng)為啟用狀態(tài),則為“true”。
android:menuCategory
- 關(guān)鍵字。對(duì)應(yīng)于
Menu
CATEGORY_*
常量的值,這些常量用于定義項(xiàng)的優(yōu)先級(jí)。有效值:
值 | 說(shuō)明 |
---|
container | 這類項(xiàng)歸屬于容器。 |
system | 這類項(xiàng)由系統(tǒng)提供。 |
secondary | 這類項(xiàng)是用戶提供的次要(不常用)選項(xiàng)。 |
alternative | 這類項(xiàng)是對(duì)當(dāng)前顯示的數(shù)據(jù)的替代操作。 |
android:orderInCategory
- 整數(shù)。項(xiàng)在組內(nèi)的“重要性”順序。
- 一個(gè)菜單組,用于創(chuàng)建一組具有相同特征(例如是否可見(jiàn)、是否啟用或是否可勾選)的項(xiàng)。包含一個(gè)或多個(gè)
元素。必須是
元素的子元素。屬性:
android:id
- 資源 ID。唯一資源 ID。要為此項(xiàng)創(chuàng)建新的資源 ID,請(qǐng)使用以下形式:
"@+id/name"
。加號(hào)表示應(yīng)將其創(chuàng)建為新 ID。 android:checkableBehavior
- 關(guān)鍵字。組的可勾選行為類型。有效值:
值 | 說(shuō)明 |
---|
none | 不可勾選 |
all | 可以勾選所有項(xiàng)(使用復(fù)選框) |
single | 只能勾選一項(xiàng)(使用單選按鈕) |
android:visible
- 布爾值。如果組可見(jiàn),則為“true”。
android:enabled
- 布爾值。如果組為啟用狀態(tài),則為“true”。
android:menuCategory
- 關(guān)鍵字。對(duì)應(yīng)于
Menu
CATEGORY_*
常量的值,這些常量用于定義組的優(yōu)先級(jí)。有效值:
值 | 說(shuō)明 |
---|
container | 這類組歸屬于容器。 |
system | 這類組由系統(tǒng)提供。 |
secondary | 這類組是用戶提供的次要(不常用)選項(xiàng)。 |
alternative | 這類組是對(duì)當(dāng)前顯示的數(shù)據(jù)的替代操作。 |
android:orderInCategory
- 整數(shù)。項(xiàng)在類別中的默認(rèn)順序。
- 示例:
- 保存在
res/menu/example_menu.xml
的 XML 文件:
-
以下應(yīng)用代碼會(huì)通過(guò) onCreateOptionsMenu(Menu)
回調(diào)擴(kuò)充菜單,還會(huì)聲明其中兩個(gè)項(xiàng)的點(diǎn)擊回調(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 onOptionsItemSelected()
}
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 onOptionsItemSelected()
}
網(wǎng)站欄目:Android復(fù)習(xí)(二)應(yīng)用資源——>菜單-創(chuàng)新互聯(lián)
文章地址:
http://weahome.cn/article/dipcjc.html