/** 当Menu有命令被选择时,会调用此方法 */

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case ADD_ID:

setTitle("添加");// 将title设置为"添加"

break;

case DELETE_ID:

setTitle("删除");// 将title设置为"删除"

break;

case EXIT_ID:

finish();// 退出程序

break;

}

// 返回false允许正常的菜单处理资源,若返回true,则直接在此毁灭它

return super.onOptionsItemSelected(item);

}

}

package com.misoo;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

public class ex01 extends Activity {

/** 给定各菜单项对应ID值,以区别之,能保证这些值不同就行了 */

public static final int ADD_ID = Menu.FIRST;// 添加命令对应ID值

public static final int DELETE_ID = Menu.FIRST + 1;// 删除命令对应ID值

public static final int EXIT_ID = Menu.FIRST + 2;// 退出命令对应ID值

/** 当activity首次被创建时被调用 */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);// 根据main.xml的布局来显示

}

/** 只有当Menu菜单首次被显示时会调用此方法 */

@Override

public boolean onCreateOptionsMenu(Menu menu) {

boolean b = super.onCreateOptionsMenu(menu);

/**

* menu.add(int groupId, int itemId, int order, CharSequence title)

* groupId为组ID,这里用不到,所以设置成Menu.NONE

* itemId为项ID,当命令被点击时,要区别点击的命令,所以设置以不同的ID

* order为排列次序,值越小排的越前(不能为负数),这里按添加顺序排,所以也设置成Menu.NONE

* title为要显示的命令名称,这里是根据res/values/strings.xml的name名称去取相应的value

* 估计这样处理是为了日后若要更改这些值,就直接在XML里修改,可以不必改动代码

*/

menu.add(Menu.NONE, ADD_ID, Menu.NONE, R.string.menu_add);

menu.add(Menu.NONE, DELETE_ID, Menu.NONE, R.string.menu_delete);

menu.add(Menu.NONE, EXIT_ID, Menu.NONE, R.string.menu_exit);

return b;// 如果返回值不为true,则Menu菜单将不会显示

}

/** 当每次Menu显示时,会调用此方法 此例中没用到*/

@Override

public boolean onPrepareOptionsMenu(Menu menu) {

return super.onPrepareOptionsMenu(menu);

}

/** 当每次Menu关闭时,会调用此方法 此例中没用到*/

@Override

public void onOptionsMenuClosed(Menu menu) {

super.onOptionsMenuClosed(menu);

}

/** 当Menu有命令被选择时,会调用此方法 */

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case ADD_ID:

setTitle("添加");// 将title设置为"添加"

break;

case DELETE_ID:

setTitle("删除");// 将title设置为"删除"

break;

case EXIT_ID:

finish();// 退出程序

break;

}

// 返回false允许正常的菜单处理资源,若返回true,则直接在此毁灭它

return super.onOptionsItemSelected(item);

}

}

下边为res/values/string.xml

view plaincopy to clipboardprint?

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="hello">Hello World, ex01!</string>

<string name="app_name">ex01</string>

<string name="menu_add">Add Item</string>

<string name="menu_delete">Del Item</string>

<string name="menu_exit">Exit</string>

</resources>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kf156/archive/2009/08/12/4436594.aspx

menu.add的方法中的参数:

第一个int类型的group ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。可以用到的方法有:
removeGroup(id)
setGroupCheckable(id, checkable, exclusive)
setGroupEnabled(id,boolean enabled)
setGroupVisible(id,visible)
个人认为,当你需要在不同场合下显示不同的menu的时候,合理使用这个参数将更为有效的处理菜单的显示。否则一般情况下都归为一组。
第二个int类型的item ID参数,代表的是项目编号。这个参数非常重要,一个item ID对应一个Menu中的选项。在后面使用菜单的时候,就是靠这个item ID来判断,你选中的是哪个选项。
第三个int类型的order ID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的顺序来显示。
第四个String类型的title参数,表示选项中显示的文字。
再看看setIcon方法,就是为菜单添加图标显示,使用用资源文件。

转自: http://blog.csdn.net/a_moon721/article/details/5880260

Android 建立Menu选单onOptionsItemSelected (转)相关推荐

  1. Android中menu详解(转)

    Android中菜单的使用时非常频繁的,能够达到很好的使用效果,其实他的实现方法非常简单,下面为大家讲解,首先看图: JAVA代码: package com.smart; import android ...

  2. android 自定义menu背景,Android编程实现自定义系统菜单背景的方法

    本文实例讲述了Android编程实现自定义系统菜单背景的方法.分享给大家供大家参考,具体如下: 不多说,上图,见代码. package lab.sodino.menutest; import andr ...

  3. Android中Menu的基本用法

    转自:http://blog.csdn.net/yuzhongchun/article/details/8956256 一. 使用xml定义Menu 菜单资源文件必须放在res/menu目录中.菜单资 ...

  4. Android 建立自己的手写笔画图案 Gesture Builder

    利用反射去存储对对象到SharedPreferences http://www.eoeandroid.com/thread-202940-1-1.html 基于Android平台的车辆信息查询系统的开 ...

  5. android中 menu的属性详细解释

    android中 menu的属性详细解释 <?xml version="1.0" encoding="utf-8"?> <menu xmlns ...

  6. android 之Menu详解

    基本概念: 菜单:在应用程序中有很多类型的通用应用程序组件 A.选项菜单(OptionsMenu):当用户按手机上的菜单键时自动弹出的菜单 onCreateOptionsMenu(Menu menu) ...

  7. android 按钮 菜单,(期末要考啊)Android的menu(菜单)按钮的使用

    (期末要考啊)Android的menu(菜单)按钮的使用 安卓 Android的菜单按钮 使用xml的方式创建菜单项在res下的menu目录下新建一个main.xml文件,以menu为根节点,添加一个 ...

  8. 屏蔽android的menu键,使menu键不能用,自定义menu键

    在Activity中重写onKeyDown方法,Menu键被屏蔽但HOME键未被屏蔽,其中还HOME屏蔽在我的另外一篇博客中已详细介绍,下面来解决Menu键被屏蔽,让其中MENU键有效. 屏蔽andr ...

  9. android 自定义menu 背景颜色,Android中设置Menu菜单的文字颜色为白色

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 开发者交流裙: 188168040 Android中设置Menu菜单的文字颜色为白色,一般情况下,Android中Menu菜单的title文字颜色为黑色, ...

最新文章

  1. Apache的安装与下载
  2. C# 学习笔记(11)蓝屏小工具
  3. python 读帧和绘图的区别
  4. “注册编辑已被管理员停用”之解决办法
  5. 推荐一款Python编辑器,集Pycharm和Sublime优点于一身的王者
  6. 最大尺寸分辨率_全球最大尺寸、最高分辨率硅基OLED显示屏在合肥点亮!
  7. 中查询一个文件夹下文件数量_如何在 Bash 中使用循环 | Linux 中国
  8. mysql(mariadb)的安装与使用,mysql相关命令,mysql数据类型
  9. Tuxedo 8.110gR3 开发环境的安装与配置
  10. TYVJ P1022 进制转换 Label:坑
  11. WPF编程宝典(Pro wpf in c# 2012)(文摘)
  12. 各种泵的图形符号_常见液压系统中液压元件图形符号
  13. 触摸精灵之keepScreen
  14. OpenHarmony WLAN HDI 源码学习
  15. 华为是一家怎样的企业?
  16. 服务器端口怎么调出虚拟键盘,Win8小技巧之如何设置触控虚拟键盘
  17. 2021年焊工(初级)考试报名及焊工(初级)模拟试题
  18. SQL Server 检测到基于一致性的逻辑 I/O 错误.....请执行完整的数据库一致性检查(DBCC CHECKDB)......
  19. 安全标准ISO7498-2(Security Architecture)名词定义
  20. 微信小程序案例学习笔记

热门文章

  1. mysql binary-mode=1_Mysql 性能调优 二 1
  2. 软件测试薪资标准新鲜出炉,你达标了吗?
  3. java笔试题_一道简单的 Java 笔试题,但值得很多人反思
  4. python反归一化_pytorch 归一化与反归一化实例
  5. 用php写成绩switch,帮我看一下,这个php的switch我写的对不对?
  6. java private是什么_java private 干什么用
  7. 本周测试服务器角色转移系统仅开放转入,梦幻西游10月8日更新内容一览
  8. Top3获奖金10万,Seq2seq对话系统设计方案
  9. 深度学习理论 10集课程视频(斯坦福 STATS 385)
  10. sqlplus 主键 设置_浅谈MyBatis-Plus学习之Oracle的主键Sequence设置