Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1035735
  • 博文数量: 146
  • 博客积分: 3444
  • 博客等级: 中校
  • 技术积分: 1602
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-21 15:18
文章分类

全部博文(146)

文章存档

2014年(9)

2013年(3)

2012年(6)

2011年(44)

2010年(38)

2009年(46)

分类: 嵌入式

2011-11-07 14:00:34

  android手机上一般提供一个“菜单”按钮,当按下菜单按钮时会出现一个菜单,这是怎么实现的呢 , android的Activity提供一个 onCreateOptionsMenu()方法供我们重写,当按钮按下时,这个方法被调用,我们可以在其中动态添加菜单选项,目前可以选择两种方式添加,xml配置方式、硬编码方法。 
1. xml配置方式: 在res添加menu目录,然后再旗下添加一个menu.xml文件,其内容如下: 
Xml代码  收藏代码
  1. xml version="1.0" encoding="utf-8"?>  
  2. <menu  
  3.   xmlns:android="">  
  4.     <item android:title="新建" android:id="@+id/newItem">item>  
  5.     <item android:id="@+id/deleteItem" android:title="删除">item>  
  6.       <item android:id="@+id/editItem" android:title="编辑">item>  
  7. menu>  

然后再Activity中重写onCreateOptionsMenu方法,如下: 
Java代码  收藏代码
  1. @Override  
  2. public boolean onCreateOptionsMenu(Menu menu) {  
  3.     // TODO Auto-generated method stub  
  4.     MenuInflater inflater = getMenuInflater();  
  5.     inflater.inflate(R.menu.menu, menu);  
  6.   
  7.     return super.onCreateOptionsMenu(menu);  
  8.   
  9. }  

MenuInflater 用于加载menu配置文件。 
或者使用硬编码方式: 
Java代码  收藏代码
  1. menu.add(Menu.NONE, R.id.newItem, Menu.NONE, "新建");  
  2. menu.add(Menu.NONE, R.id.deleteItem, Menu.NONE, "删除");  
  3. menu.add(Menu.NONE, R.id.editItem, Menu.NONE, "编辑");  

add方法参数: 
groupId :组标识符,用于将menuItem分组。不需要分组时可以使用Menu.NONE赋值。 
itemId : 菜单项标识符, 
order :菜单项顺序值 
title :菜单项显示的字符串 

菜单弹出来后,可以重写onMenuItemSelected方法对单击事件进行响应。如下: 
Java代码  收藏代码
  1. @Override  
  2.  public boolean onMenuItemSelected(int featureId, MenuItem item) {  
  3. // TODO Auto-generated method stub  
  4. switch (item.getItemId()) {  
  5.     case R.id.newItem:  
  6.         this.setTitle("新建菜单被单击");  
  7.         break;  
  8.     case R.id.deleteItem:  
  9.         this.setTitle("删除菜单被单击");  
  10.         break;  
  11.     case R.id.editItem:  
  12.         this.setTitle("编辑菜单被单击");  
  13.         break;  
  14.     default:  
  15.         break;  
  16. }  
  17. return super.onMenuItemSelected(featureId, item);  

阅读(2843) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~