- 浏览: 49102 次
- 性别:
- 来自: 南京
-
文章分类
最新评论
四.menu下定义菜单
格式:<?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:numericShortcut="string" 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>
属性:menu:根属性,包含item和group
item:必须是menu或者group的子元素,可以包含menu(子菜单)
group:必须是menu的子元素,包含item
属性详解:
menu:xmlns:android="http://schemas.android.com/apk/res/android"
item:
<item android:id="@+id/item1" android:alphabeticShortcut="m" android:checkable=""是否能被选中 android:checked=""是否是默认选中的 android:enabled=""是否可用 android:icon=""图标 android:menuCategory="container"菜单分类 android:numericShortcut=""数字快捷键 android:orderInCategory=""在分类中顺序 android:title="root(m)"标题 android:titleCondensed="mm"简化标题 android:visible=""/>是否可见
说明:其中menuCategory分为:
container
For groups that are part of a container.
system
For groups that are provided by the system.
secondary
For groups that are user-supplied secondary (infrequently used)
options.
alternative
For groups that are alternative actions on the data that is currently
displayed.
group:android:checkableBehavior子类项的选择方式
none
Not checkable
all
All items can be checked (use checkboxes)
single
Only one item can be checked (use radio buttons
详解介绍:
1.选项菜单(option menu),当用户按下menu键或者调用openOptionsMenu()打开,第一次打开会依次回调:public boolean onCreateOptionsMenu(Menu menu)和public boolean onPrepareOptionsMenu(Menu menu
,以后每次打开只会回调: public boolean onPrepareOptionsMenu(Menu menu).返回键或者调用public void closeOptionsMenu()会关闭menu.会回调事件:public void onOptionsMenuClosed(Menu menu)
所以一般在onCreateOptionsMenu(Menu menu)中初始化:
@Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); //通过MenuInflater将XML 实例化为 Menu Object MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; }
boolean onPrepareOptionsMenu(Menu menu)
·这个方法将已经创建的 Menu 实例作为参数传递,这样的话就可以移除、添加、修改菜单项。
·Android 2.3及其之前的版本,系统在用户每次打开Options Men 时会调用onPrepareOptionsMenu()方法。
·Android 3.0及其之后的版本,当你要更新菜单时你必须调用 invalidateOptionsMenu() 方法,因为菜单
是一直打开着的,然后系统会自动调用 onPrepareOptionsMenu() 方法。
事件处理:public boolean onOptionsItemSelected(MenuItem item)
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.about: // 显示关于页 displayAboutBox(); return true; case R.id.help: // 显示到帮帐页 displayHelpDialog(); return true; case R.id.settings: // 跳转到配置页 displaySettings(); return true; case R.id.quit: // 退出程序 finish(); return true; default: //返回False交由系统正常处理菜单,返回True则由本程序处理 return false; } }
2.上下文菜单(content menu):长时间按住view会产生,需要在某个view上注册
说明:长时间按住就会调用oncreatecontextMenu,但是也可以调用public void openContextMenu(View view)打开,关闭时可以调用:closeContextMenu()
定义的xml格式和选项菜单是一样的,初始化调用public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater=getMenuInflater(); inflater.inflate(R.menu.meetings_context_menu, menu); }
事件处理:onContextItemSelected
@Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { case R.id.delete_meeting: postionOfMeetingToDelete = info.position; showDialog(CONFIRM_DELETE_MEETING_DIALOG); return true; default: return super.onContextItemSelected(item); } }
注册菜单:registerForContextMenu和解除注册 unregisterForContextMenu
关闭时所回调的事件:onContextMenuClosed
注意:ContextMenu 与 OptionsMenu 的菜单资源XML文件格式完全相同,不能显示icon,但是ContextMenu可以具有自己的标题栏;
·通过setHeaderIcon、setHeaderTitle、setHeaderView、clearHeader方法控制标题栏的显示。
·ContextMenu 继承自 Menu ,标题栏相关的方式是扩展的方法。
多个 View 可以同时注册同一个 ContextMenu
有些 View 会自带系统的 ContextMenu,比如 EditText 会自带“输入法”“复制”“粘贴”等菜单项,
再对这些 View 注册 ContextMenu 时,会将系统菜单项和自己注册的菜单项融合到一起
3.sub menu(子菜单):在定义选项菜单和上下文菜单时可以加入子菜单,当子菜单被选中时 仍然调用和父类菜单选中时一样的方法.
可以动态的通过addsubmenu和add方法添加子菜单和子菜单项
子菜单有相应的标题栏和相应的方法
其余的特性:
菜单组:可以通过menu.setGroupCheckable();
menu.setGroupEnabled();
menu.setGroupVisible()
进行同意设置
可以通过group的android:checkableBehavior属性设置组菜单项的选择模式
single
all
none
但是选择后我们要手动的改变状态,使用方法:setChecked()
发表评论
-
android自定义控件属性详解
2012-04-01 10:56 18341. reference:参考某一资源ID。 ... -
android2.2资源文件详解8--xml文件夹下的各种文件定义
2012-02-22 19:23 684待 -
android2.2资源文件详解7--layout文件夹下布局文件定义
2012-02-22 19:21 814待 -
android2.2资源文件详解6--value文件夹下各种值定义
2012-02-22 19:21 765待.... -
android2.2资源文件详解5--drawable文件夹下各种drawable定义
2012-02-22 19:20 942待..... -
android 屏幕适配问题
2012-02-17 10:00 779android 屏幕适配问题 如何将一个应用程 ... -
android资源引用
2012-02-14 13:30 717android中的资源引用 一.R类:系统R类和自己的R类 ... -
android2.2资源文件详解5--drawable文件夹下的图像定义
2011-12-13 08:08 0五.drawable文件夹下的图形文件定义 说明:andro ... -
android2.2资源文件详解3--color文件夹下的状态颜色列表
2011-12-12 09:58 2132三.color文件夹下的状态颜色列表,随着iew的不同状态显示 ... -
android2.2资源文件详解2--tween动画
2011-12-12 09:05 1202说明:Animation是所有tween动画的父类,所以动画所 ... -
android2.2资源文件详解1--概述
2011-12-11 14:56 1073一.android开发中的资源 ...
相关推荐
根据给定文件的信息,我们可以提炼出以下相关的IT知识点: ### XianDian云计算基础架构服务平台 #### 一、概述 “先电云计算基础架构服务平台镜像-XianDian-iaas-v2.2.iOS”这一标题揭示了产品的主要特征与功能。...
- **手动下载SDK**:在网络不佳时,可以手动下载SDK包,通过分析SDK下载器的源文件列表,可以直接从指定URL下载对应的SDK版本,如`android-2.2_r01-windows.zip`等,这种方式避免了长时间的在线等待。 #### 4. SDK...
《Android2.2小部件(Widget)开发详解》 Android平台的小部件(Widget)是其桌面环境中的一个重要组成部分,允许用户在主屏幕上放置各种应用程序的功能快捷方式或动态展示信息。本教程将深入探讨如何在Android 2.2...
《广告植入系统API协议_v2.2_2016-08-171》详解 广告植入后台系统API协议是一份详细的技术文档,旨在规范不同平台与广告植入后台系统之间的通信接口。这份协议版本为V2.2,发布日期为2016年8月17日,其主要内容涵盖...
### Android 2.2 通讯录操作源代码详解 #### 一、概述 本文将详细介绍一个基于Android 2.2版本的通讯录操作示例源代码。该代码实现了读取、添加、删除以及更新联系人的功能。对于学习Android平台上的通讯录操作来...
Google在旧金山Moscone会展中心举办Google I/O 2010大会第二天(美国时间5月20日上午)的会议之上如约正式发布了代号为“Froyo(冻酸奶)”的最新版Android 2.2操作系统。而紧接着网络中也开始提供SDK(开发者套件)安装包...
### Apache2.2配置文件详解:深入理解Apache Web服务器配置 Apache HTTP Server是全球最广泛使用的Web服务器之一,其灵活性和可定制性为网站开发者提供了强大的功能与控制能力。在Apache2.2版本中,主要的配置文件...
通过《Android SDK 2.2 开发环境详解.doc》和《Android 2.2_API_中文文档.docx》,开发者可以详细了解这些特性和API的使用方法,从而更好地利用Android 2.2平台进行应用开发。这些文档通常包含详细的技术指南、示例...
本文档主要讲述的是Android SDK 2.2 开发环境详解;Android 2.2是非常值得期待,本文是根据个人实践经验配置Android SDK2.2+Eclipse 的开放环境编写的详细步骤。根据这些步骤,就是门外汉也可有完成。希望本文档会给...
### 三、详解Android 2.2中的JIT内核编译器 **Just-In-Time (JIT) 编译器**是Android 2.2中引入的一项关键技术,它显著提升了应用程序的运行效率。JIT编译器的作用是在应用程序运行时动态地将字节码编译成机器代码...
《CP343-1模块的GSD文件详解》 在工业自动化领域,西门子的CP343-1模块扮演着至关重要的角色。它是一款高性能的以太网通信模块,广泛应用于SIMATIC S7-300系列PLC系统中。本文将围绕标题中的“CP343-1_GSD文件_V2.2...
在Android开发中,ext4文件系统打包是系统镜像制作的重要一环。本文档将详细介绍在Android平台上使用make_ext4fs工具打包ext4文件系统镜像的过程,并对相关的操作注意事项进行说明。同时,文档也会涉及使用simg2img...
资源文件夹用来存放各种资源类型,如图片、字符串、样式等,而资源文件夹下的文件则通过特定的格式定义和组织这些资源。本文将详细介绍Android资源文件的分类、组织结构和使用方法。 首先,资源文件夹中存放的文件...
### 系统文件和文件夹详解 在计算机操作系统中,各种文件和文件夹承载着重要的功能,它们共同协作以确保系统的稳定运行与用户的便捷使用。本文将深入探讨几个关键的系统文件和文件夹,包括Cookies、Command、...
eoeAndroid特刊第十期:android2.2特色详解 pdf,主要介绍最新的android2.2系统。全面介绍android2.2中的重点升级,JIT内核编译器等方面的内容,本期亮点是推出了三份最近的android行业研究报告,技术盛宴版块里有...
"weibo4android"是一个专门为Android平台设计的新浪微博客户端应用源码,适用于Android 2.2及以上版本。这个项目可能是由开发者为了教学、研究或二次开发目的而发布的,允许用户查看、发布微博,实现社交媒体功能。 ...
本文详细探讨了如何在 Element UI 中使用 el-menu 组件实现无限极循环菜单,即菜单项的子菜单项还可以拥有自己的子菜单,形成一个嵌套的结构。 为了实现无限极循环菜单,需要进行组件嵌套,即在 el-menu 组件内部...
《Android 2.2 官方实例详解》 在Android操作系统的发展历程中,Android 2.2(Froyo)是一个重要的里程碑。这个版本引入了许多关键的改进和新特性,为开发者提供了更丰富的功能和更好的性能优化。本篇将深入探讨...
### 在Windows下搭建Android 2.2开发环境详解 #### 一、概述 本文将详细介绍如何在Windows操作系统下搭建Android 2.2开发环境。通过本教程,您将能够完成以下步骤:安装Java Development Kit (JDK)、配置Android ...
### Android SDK 2.2 + Eclipse 开发环境配置与详解 #### 一、引言 随着移动互联网的兴起,Android 成为了最受欢迎的移动操作系统之一。为了满足开发者的需求,Google 不断更新和完善 Android 开发者工具。2011 年...