详细说明Android菜单类型

移动开发 Android
Android菜单类型分为了以下三种类型,分别为options menu,context menu,sub menu,欢迎大家进行学习思考。
 

Android菜单类型作为Google远景的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现,这不但实现了用户的各方面的需求,还给了苹果那里一些的压力。

options menu就是通过按home键来显示,context menu需要在view上按上2s后显示。这两种menu都有可以加入子菜单,子菜单不能种不能嵌套子菜单。options menu最多只能在屏幕最下面显示6个菜单选项,称为icon menu,icon menu不能有checkable选项。多于6的菜单项会以more icon menu来调出。

称为expanded menu。options menu通过activity的onCreateOptionsMenu来生成,这个函数只会在menu第一次生成时调用。任何想改变options menu的想法只能在onPrepareOptionsMenu来实现,这个函数会在menu显示前调用。onOptionsItemSelected 用来处理选中的菜单项。

context menu是跟某个具体的view绑定在一起,在activity种用registerForContextMenu来为某个view注册context menu。context menu在显示前都会调用onCreateContextMenu来生成menu。onContextItemSelected用来处理选中的菜单项。

Android菜单类型还提供了对菜单项进行分组的功能,可以把相似功能的菜单项分成同一个组,这样就可以通过调用setGroupCheckable,setGroupEnabled,setGroupVisible来设置菜单属性,而无须单独设置。

这是一个标准的插入一个菜单项的方法,菜单项的id为MENU_ITEM_INSERT。有意思的是下面这几句代码:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content" android:id="@+id/TextView01"/> 
  10.  
  11. <Button android:id="@+id/Button01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="@string/txtInfo"></Button> 
  12. </LinearLayout> 

这到底有何用处呢?其实这是一种动态菜单技术(也有点像插件机制),若某一个activity,其类型是”android.intent.category.ALTERNATIVE”,数据是”vnd.android.cursor.dir/vnd.google.note”的话。

系统就会为这个activity增加一个菜单项。在Android菜单类型中查看后发现,没有一个activity符合条件,所以这段代码并没有动态添加出任何一个菜单项。怎么回事呢?查看代码后发现,原来是onPrepareOptionsMenu搞的鬼!这个函数在onCreateOptionsMenu之后运行,下面这段代码中。

由于Menu.CATEGORY_ALTERNATIVE是指向同一个组,所以把onCreateOptionsMenu中设置的菜单项给覆盖掉了,而由于onPrepareOptionsMenu没有给Menu.CATEGORY_ALTERNATIVE附新值,故Menu.CATEGORY_ALTERNATIVE还是为空。

【编辑推荐】

  1. Android应用程序组建原理深入剖析
  2. Android SMS短信服务相关概念简述
  3. PythonAndroid数据库相关代码解读
  4. PythonAndroid安装卸载程序具体操作方法解析
  5. Android应用程序的四个关键点
责任编辑:chenqingxiang 来源: 计世网
相关推荐

2009-12-11 10:49:04

Visual Stud

2009-12-22 15:44:47

ADO.NET菜单

2010-02-04 15:20:50

Android SDK

2010-03-05 14:16:38

Android设计平台

2010-02-04 09:55:46

Android DEX

2010-03-03 18:17:01

Android手机服务

2010-02-06 17:43:51

Android应用

2010-02-06 15:53:55

2010-02-05 17:34:37

Android 2.1

2010-02-06 16:57:43

Android操作系统

2010-03-05 13:54:09

2010-03-05 15:58:11

操作系统Android

2010-02-05 17:04:31

Android版本

2010-02-05 18:09:12

Android

2010-03-03 17:11:08

2009-12-28 09:26:09

ADO对象

2010-03-05 14:43:22

Android浏览器

2010-03-09 10:11:34

Linux挂载命令

2010-07-21 13:17:52

Perl文件读写

2009-12-08 09:00:14

WCF线程
点赞
收藏

51CTO技术栈公众号