转载: http://android.blog.51cto.com/268543/306424/
Android系统里面有3种类型的菜单:options menu,context menu,sub menu。
options menu 按Menu键就会显示,用于当前的Activity。
它包括两种菜单项:
因为options menu在屏幕底部最多只能显示6个菜单项,这些菜单项称为icon menu,icon menu只支持文字(title) 以及icon,可以设置快捷键,不支持checkbox以及radio控件,所以不能设置checkable选项。
而多于6的菜单项会以“more” icon menu来调出,称为expanded menu。它不支持icon,其他的特性都和icon menu一样!
在Activity里面,一般通过以下函数来使用options menu:
Activity::onCreateOptionsMenu (Menu menu) 创建options menu,这个函数只会在menu第一次显示时调用。
Activity::onPrepareOptionsMenu (Menu menu) 更新改变options menu的内容,这个函数会在menu每次显示时调用。
Activity::onOptionsItemSelected (MenuItem item) 处理选中的菜单项。
context menu 要在相应的view上按几秒后才显示的,用于view,跟某个具体的view绑定在一起。
这类型的菜单不支持icon和快捷键!
在Activity里面,一般通过以下函数来使用context menu:
Activity::registerForContextMenu(View view) 为某个view注册context menu,一般在Activity::onCreate里面调用。
Activity::onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) 创建context menu,和options menu不同,context meun每次显示时都会调用这个函数。
Activity::onContextItemSelected(MenuItem item) 处理选中的菜单项。
sub menu
以上两种menu都可以加入子菜单,但子菜单不能嵌套子菜单,这意味着在Android系统,菜单只有两层,设计时需要注意的!同时子菜单不支持icon。
xml形式的menu定义及应用
上述的三种类型的menu都能够定义为xml资源,但需要手动地使用MenuInflater来得到Menu对象的引用。
一个菜单,对应一个xml文件,因为要求只能有一个根节点<menu>。官方说<?xml>声明可以不写,但我觉得还是写上好 些,很多时候那个<?xml>声明主要是为了声明编码格式utf-8之类的。xml文件保存为res/menu /some_file.xml。Java代码引用资源: R.menu.some_file
接下来介绍相关的节点和属性(所有的属性都定义为android空间内,例如android:icon="@drawable/icon"):
<menu> 根节点,没有属性。
<group> 表示在它里面的<item>在同一group。相关属性包括:
id:group id
menuCategory:对应 常量Menu CATEGORY_* — 定义了一组的优先权,有
<menu> 根节点,没有属性。
<group> 表示在它里面的<item>在同一group。相关属性包括:
id:group id
menuCategory:对应 常量Menu CATEGORY_* — 定义了一组的优先权,有
效值:container,system,secondary,和alternative
orderInCategory:定义这组菜单在菜单中的默认次序,int值
checkableBehavior:这组菜单项是否checkable。有效值:none,all(单选/单选按钮radio button),single(非单选/复选类型checkboxes)
visible:这组菜单是否可见 true or false
enabled:这组菜单是否可用,true or false
id: item id
menuCategory: 用来定义menu类别
orderInCategory: 用来定义次序,与一个组在一起(Used to define the order of the item, within a group)
title: 标题
titleCondensed:标题摘要, 当原标题太长的时候,需要用简短的字符串来代替title
icon: icon 图标
alphabeticShortcut: 字母快捷键
numericShortcut:数学快捷键
checkable:是否为checkbox, true or false
checked:是否设置为checked状态,true or false
visible: 是否可见, true or false
enabled:是否可用,true or false
相关推荐
在Android应用开发中,`Menu`是用户界面中不可或缺的一部分,它通常用于在特定操作(如选项、更多操作)上为用户提供快捷访问的途径。在Android系统中,`Menu`通常出现在活动(Activity)的顶部作为选项菜单,或者在...
在Android应用开发中,Menu是用户界面中的一个重要组成部分,它提供了在特定上下文中展示一系列操作选项的方式。在标题“Android menu单选菜单.rar”中提到的,我们将关注如何在Android中实现一个单选菜单,即单选列...
在Android应用开发中,菜单(Menu)是用户界面的一个重要组成部分,它允许用户在不离开当前屏幕的情况下选择和执行各种操作。在这个“Android menu单选菜单.zip”压缩包中,包含了一个简单的Android单选菜单(Radio ...
android Menu 和 RadioGroup RadioButton的用法
在Android应用开发中,Menu是用户界面不可或缺的一部分,它提供了在屏幕顶部或底部显示一系列操作选项的功能。Android Menu主要用于在不占用屏幕空间的情况下为用户提供多种交互方式,如在活动(Activity)的顶部弹...
在Android应用开发中,Menu是用户界面中的一个重要组成部分,它提供了在不同场景下展示操作选项的方式,如在屏幕顶部的选项栏或者通过右上角的菜单按钮弹出。本篇文章将深入探讨Android Menu的基础知识,包括如何...
Android Menu和ListView 整合设计 源码 package com.MyMenu; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteCursor; import android.os.Bundle; import ...
在Android开发中,Menu通常用于显示应用程序中的操作选项,如在顶部栏或下拉菜单中。自定义Menu允许开发者根据应用需求设计独特的交互方式和视觉样式。本篇将深入探讨如何在Android中实现自定义Menu。 首先,我们...
在Android开发中,Menu控件是构建用户交互界面不可或缺的一部分,它通常用于在应用程序的顶部显示选项,如在Activity的标题栏或者下拉菜单中。本文将深入探讨Android Menu控件的源码,理解其工作原理,以及如何在...
在Android应用开发中,Menu是用户界面不可或缺的一部分,它提供了在特定上下文(如活动或对话框)中显示额外操作的途径。本篇将详细探讨Android中的Menu,包括它的使用、代码实现以及功能展示。 首先,Android Menu...
在Android开发中,Menu是一个重要的组成部分,它提供了一种用户友好的方式来展示应用程序的附加功能,通常在屏幕顶部的选项栏或者设备的物理或软件菜单键被按下时出现。本篇文章将详细介绍如何在Android中设置Menu,...
在Android应用开发中,`Menu`是一个至关重要的组件,它允许开发者在应用程序的不同场景下(如活动顶部的选项栏或下拉菜单)提供用户可交互的选项。在本篇文章中,我们将深入探讨如何创建和处理Android中的`Menu`,...
"AndroidMenu控件Demo"是一个专门演示如何在Android应用中使用Menu的实例,其中包含了详细的注释,方便开发者理解和学习。下面将详细介绍Menu控件的基本使用方法以及在Demo中的实现。 1. **Menu的创建**: - Menu...
在Android应用开发中,下拉菜单(通常称为Dropdown Menu或Spinner)是一种常见的用户界面元素,它允许用户从一组预定义的选项中选择一个。在本篇文章中,我们将深入探讨Android的下拉菜单实现,主要围绕"Android ...
在Android应用开发中,Menu是用户界面中的一个重要组成部分,它通常用于在屏幕顶部或下拉框中展示一系列可选择的选项。本资源“Android menu单选菜单.zip”提供了一个关于如何在Android应用中实现单选菜单的源码示例...
在Android应用开发中,Menu是用户界面中的一个重要组成部分,它提供了在特定屏幕或操作中展示一系列选项的方法。在本教程中,我们将深入探讨如何在Android中创建和使用单选菜单(Radio Button Menu)。单选菜单允许...