`
oxen
  • 浏览: 106002 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

在Android应用中定制菜单

阅读更多

        通过Android提供的NotePad示例应用,及帮助文档中对菜单的相关描述,现将如何在我们的Androiod应用中定制我们自己的菜单,做一个小结。

一、菜单的生成

    对一个Android应用中的每一个屏幕,也就是说,对每一个Activity类,都会拥有一个默认菜单。在Activity类中,定义了几个与菜单有关的方法,供继承于Activity类的子类去重载,从而定制我们自己的菜单。这几个方法为:

public boolean onCreateOptionsMenu(android.view.Menu menu);

public boolean onPrepareOptionsMenu(android.view.Menu menu);

public boolean onOptionsItemSelected(android.view.MenuItem item);

  为了生成我们自己的菜单,Android为我们提供了两个时机点。当在Activity类实例启动时,我们可以通过重载onCreateOptionsMenu()来定制我们的菜单;另外,也可以在菜单每次被调用时,对菜单中的项重新生成,通过重载onPrepareOptionsMenu来实现。对于第二种方式,由于每次调用时都要重新生成,对于那些不经常变化的菜单,效率就会比较低。看下面的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
   super.onCreateOptionsMenu(menu);
   menu.add(0, 0, “菜单项一”);
   menu.add(0, 1, “菜单项二”);
   menu.add(0, 2, “菜单项三”);
   return true;
}

    Menu.add()方法第一个参数表示给这个新增的菜单项分配一个分组号;第二个参数表示给这个新增的菜单项分配一个唯一标识id;第三个参数为菜单项的标题。

    我们可以通过调用Menu.setItemShown()或者Menu.setGroupShown()方法来显示或隐藏一些菜单项。

    这里要注意的一个地方是:菜单项的显示顺序是按代码中添加的顺序来的,也就是说Menu.add()方法只能在菜单的最后面新增一个菜单项。另外,第一个参数的分组标识,不会改变菜单项的显示顺序。
二、响应菜单项点击

   当菜单显示出来后,用户点击菜单中的某一菜单项,我们的菜单需要响应这个点击事件。这个也很简单,通过重载onOptionsItemSelected()方法来实现,直接上例子:

@Override
public boolean onOptionsItemSelected(Menu.Item item){
   switch (item.getId()) {
   case 0:
       showAlert(”Menu Item Clicked”, “菜单项一”, “ok”, null, false, null);
       return true;
   case 1:
       showAlert(”Menu Item Clicked”, “菜单项二”, “ok”, null, false, null);
       return true;
   case 2:
       showAlert(”Menu Item Clicked”, “菜单项三”, “ok”, null, false, null);
       return true;
   }
   return false;
}

    这里,我们还可以通过调用Item.setAlphabeticShortcut()或Item.setNumericShortcut()方法来增加菜单项的快捷键操作。

    对响应菜单项点击,还有另一个办法,可以通过实现Runnable类()的一个子类,做为消息句柄来对菜单项点击做响应,但这种办法效率较低,不推荐这么做。

三、增加子菜单

    我们还可以通过调用Menu.addSubMenu()方法,为某个菜单项添加子菜单,这个方法返回一个SubMenu实例,我们可以在这个SubMenu菜单中添加子菜单项。

    注:菜单只能有一级子菜单,不支持多级。

分享到:
评论
1 楼 vwangzhen 2009-02-02  
不知可以不可以让四个菜单项显示在一行

相关推荐

    Android高级编程--源代码

    3.1 Android应用程序的组成部分 43 3.2 程序清单简介 44 3.3 使用清单编辑器 47 3.4 Android应用程序生命周期 48 3.5 理解应用程序的优先级和进程状态 49 3.6 分离资源 50 3.6.1 创建资源 50 3.6.2 使用资源...

    适用于Android应用的智能,可靠且高度可定制的调试菜单-Android开发

    用于调试Android应用程序的智能可靠伴侣库Beagle(Android库)Android应用程序的智能,可靠且高度可定制的调试菜单警告! 该库正在使用2.0.0版进行完全重写。 尚未准备好供公众使用。 甚至本文档也包含对未实现功能...

    《Android高级编程》

    8.2.1 创建新的线程 8.2.2 为GUI操作同步线程 8.2.3 将Earthquake Service移动到后台线程 8.3 创建一个Toast 8.3.1 定制Toast 8.3.2 在工作(worker)线程中使用Toast 8.4 Notification简介 8.4.1 Notification ...

    Android高级编程 part1

     1.4 自带的Android应用程序  1.5 Android SDK功能  1.5.1 对包括摄像头、GPS和加速计在内的硬件的访问  1.5.2 自带的Google地图、地理编码和基于位置的服务  1.5.3 后台服务  1.5.4 SQLite数据存储和检索...

    Android高级编程 part2

     1.4 自带的Android应用程序  1.5 Android SDK功能  1.5.1 对包括摄像头、GPS和加速计在内的硬件的访问  1.5.2 自带的Google地图、地理编码和基于位置的服务  1.5.3 后台服务  1.5.4 SQLite数据存储和检索...

    Android程序设计基础

    Android有望在数年内遍布于数百万部手机和其他移动设备中,从而成为应用程序开发人员的主要平台。无论你是业余爱好者还是专业程序员,无论你是自己玩玩还是为了盈利,都应该了解关于Android开发的更多信息。本书将...

    《Android应用开发》个人总结报告.doc

    《Android应用开发》个人总结报告 刚开始接触Android感觉到它很有意思,在界面开发上和web也可以形成了相通的架构 ,更加方便,视觉上也是非常的酷,在前期我通过的大量的Android SDK开发范例大全中的例子以及...

    Android项目项目之——页面特效集合(附源码).rar

    该项目包含了多种在Android应用中常用的页面特效,如滑动菜单、下拉刷新、滚动条、页面切换动画等。这些特效不仅提升了应用的视觉效果,还提高了用户体验。 项目源码基于Android Studio编写,结构清晰,注释详细,...

    Android项目PopupWindow下拉列表.rar

    Android项目PopupWindow下拉列表是一个功能丰富的UI组件,它...此项目适用于需要实现下拉列表功能的Android应用,如导航菜单、设置选项等场景。通过简单的集成和使用,开发者可以节省大量时间和精力,提升开发效率。

    KeepItNative:Android 应用程序,它像维护原生 Android 应用程序一样维护 Web 应用程序。 该应用程序是完全可配置的,菜单、颜色主题、共享选项等等

    解析通知系统包括简单的文本通知或链接通知模式:现在您可以在通知上发送可定制的内容,即优惠、折扣等。当用户单击通知时,KeepItNative 将打开并向用户显示您的网页。 为初学者提供简单的配置方法。 高级用户可以...

    Android高级编程.pdf

    1.4 自带的Android应用程序 1.5 Android SDK功能 1.5.1 对包括摄像头、GPS和加速计在内的硬件的访问 1.5.2 自带的Google地图、地理编码和基于位置的服务 1.5.3 后台服务 1.5.4 SQLite数据存储和检索数据库 1.5.5 ...

    android开发秘籍

    10.2.1 秘诀86:在应用程序中添加谷歌地图 222 10.2.2 秘诀87:在地图上添加标记 224 10.2.3 秘诀88:在地图上添加视图 228 10.2.4 秘诀89:在地图上标记设备的当前位置 230 10.2.5 秘诀90:设置临近警告 231 第...

    精通Android游戏开发

    8 1.3.4 编写定制编译脚本 10 1.4 建立开发环境 17 1.5 已经成功迈出第一步 22 第2章 在android中编译本地代码 23 2.1 第一个本地android应用 23 2.1.1 创建avd 23 2.1.2 创建android项目 26 2.1.3 应用体系结构 27 ...

    finch:for Android应用程序的调试菜单库,支持网络活动日志记录和许多其他有用的功能

    Finch 为 Android 应用程序开发提供了一个可定制的调试菜单。 它不会影响生产代码。 开发人员可以通过简单的步骤轻松添加自己的自定义调试功能。 Gradle依赖 将它添加到存储库末尾的根 build.gradle 中: ...

    Google Android SDK开发范例大全(第3版) 1/5

    2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签 3.2 更改手机窗口画面底色 3.3 更改TextView文字颜色 3.4 置换TextView...

    Google Android SDK开发范例大全(第3版) 4/5

    2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签 3.2 更改手机窗口画面底色 3.3 更改TextView文字颜色 3.4 置换TextView...

    Google Android SDK开发范例大全(第3版) 3/5

    2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签 3.2 更改手机窗口画面底色 3.3 更改TextView文字颜色 3.4 置换TextView...

    Google Android SDK开发范例大全(第3版) 5/5

    2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签 3.2 更改手机窗口画面底色 3.3 更改TextView文字颜色 3.4 置换TextView...

Global site tag (gtag.js) - Google Analytics