`
oxen
  • 浏览: 106772 次
  • 性别: 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菜单定制总结

    在Android应用开发中,菜单(Menu)是用户界面不可或缺的一部分,它通常用于提供应用程序的主要操作选项。本篇文章将深入探讨如何在Android中自定义菜单,包括菜单的设计、创建、显示以及与用户交互的方式。我们将从...

    Android Studio 底部自定义菜单

    在Android应用设计中,这种设计模式被广泛采用,因为它符合用户的操作习惯,提高了应用的易用性。 实现底部自定义菜单有几种常见方法: 1. 使用`BottomNavigationView`:这是Android Support Library提供的一个...

    Android应用源码之菜单类似QQ的设置面板的侧滑菜单布局-IT计算机-毕业设计.zip

    在Android应用开发中,侧滑菜单(也称为抽屉式导航菜单)是一种常见的设计模式,尤其在社交类应用如QQ中被广泛采用。这个毕业设计的源码示例旨在教授如何实现一个类似QQ的设置面板的侧滑菜单布局。下面我们将深入...

    Android应用源码之菜单类似QQ的设置面板的侧滑菜单布局.zip

    这些菜单项可以通过`NavigationView`或者自定义的布局来展示在侧滑菜单中。 为了将菜单与点击事件关联起来,我们需要在Activity中重写`onOptionsItemSelected(MenuItem item)`方法。在这个方法中,根据点击的菜单项...

    Android应用源码之(Tab分页式菜单)-IT计算机-毕业设计.zip

    在Android应用开发中,Tab分页式菜单是一种常见的用户界面设计模式,用于组织大量内容或功能,让用户可以方便地在不同的视图之间切换。在这个"Android应用源码之(Tab分页式菜单)"的项目中,我们可以深入学习如何构建...

    android menu菜单距中显示

    在Android应用开发中,`Menu`是用户界面中不可或缺的一部分,它通常用于在特定操作(如选项、更多操作)上为用户提供快捷访问的途径。在Android系统中,`Menu`通常出现在活动(Activity)的顶部作为选项菜单,或者在...

    Android应用源码仿360手机助手首页浮动菜单.zip

    在Android应用开发中,创建一个类似360手机助手首页的浮动菜单是一项常见的需求,它为用户提供便捷的操作入口。这份源码提供了实现这样一个功能的详细示例,让我们深入了解一下其中涉及的关键知识点。 首先,浮动...

    android 主界面 底部菜单 DEMO

    通过这个DEMO,开发者不仅可以学习到如何在Android应用中实现底部菜单,还能了解如何整合Fragment、处理用户交互以及进行布局和样式定制。这对于任何想要提升Android开发技能的人来说都是一份宝贵的参考资料。

    Android高级应用源码-android自定义控件-侧滑菜单.rar

    "Android高级应用源码-android自定义控件-侧滑菜单.rar"这个压缩包文件提供了一个关于如何在Android应用程序中实现自定义侧滑菜单的示例源代码。侧滑菜单是一种常见的UI设计模式,通常用于在主屏幕和辅助功能之间...

    Android系统菜单与自定义菜单

    本文将深入探讨这两个概念,并提供如何在Android应用中实现和优化的相关知识。 首先,Android系统菜单是指在应用程序界面上方或下方出现的、通常由三个点(或称为“汉堡”图标)触发的一系列选项。这些菜单通常包含...

    Android 酷炫侧滑菜单Demo例子

    在Android应用开发中,侧滑菜单(也称为抽屉式导航菜单)是一种常见的设计模式,它允许用户通过从屏幕边缘向内滑动来显示或隐藏菜单。这种设计为用户提供了一种方便的方式来浏览应用的主要功能,而不会遮挡主内容...

    android 侧滑菜单-实例代码

    在Android应用开发中,侧滑菜单(Slide Menu)是一种常见的设计模式,用于提供导航和功能选项,用户只需从屏幕边缘向内滑动即可显示或隐藏菜单。这种菜单通常被用在许多应用程序中,如Google应用、Facebook应用等,...

    Android圆形旋转菜单CircleMenu

    总的来说,"Android圆形旋转菜单CircleMenu"是一个强大的UI组件,它为Android应用提供了独特的交互方式,增加了用户与应用的互动性。通过合理地集成和自定义,开发者可以为自己的应用创造出引人注目的菜单效果,提升...

    Android二级菜单图片

    在Android应用开发中,设计一个用户友好的界面是至关重要的,而二级菜单是实现这一目标的常见手段。二级菜单通常用于提供主菜单下的更具体或更深入的操作选项,以增加应用的导航层次和深度。本资源包“Android二级...

    android左右侧滑菜单

    在Android应用开发中,左右侧滑菜单是一种常见的交互设计,它允许用户通过在屏幕边缘向内滑动来显示或隐藏侧边栏,通常用于展示导航选项或者附加功能。这种设计模式在很多移动应用中被广泛采用,比如社交媒体、新闻...

    Android与XML编写菜单的例子.rar

    在Android应用开发中,XML(eXtensible Markup Language)起着至关重要的作用,尤其是在创建用户界面(UI)和配置应用程序资源方面。本示例主要关注如何使用XML和Java来编写Android应用程序中的菜单。让我们深入探讨...

    android 菜单

    在Android应用开发中,菜单是用户界面不可或缺的一部分,它提供了便捷的操作入口,使得用户能够轻松访问和执行各种功能。在本教程中,我们将深入探讨如何在Android应用中实现点击触发的下拉菜单栏功能。 首先,我们...

    android菜单图标 UC菜单图标

    在Android应用开发中,UI设计是至关重要的一个环节,而菜单图标则是用户界面的重要组成部分。"android菜单图标 UC菜单图标"这个主题涉及到的是为Android应用设计的精美菜单图标,它们与UC浏览器(UC Browser)的菜单...

    Android实现以圆心散开的半圆型导航菜单_android源码.zip

    在源码中,可能还包括了布局文件(XML)定义了菜单的初始状态,以及资源文件(如颜色、尺寸、图片等)来定制菜单的外观。开发者可能会使用Selector作为背景,以实现不同状态下的视觉变化,比如选中和未选中时的不同...

    android fragment 使用以及嵌套使用 底部菜单和顶部菜单

    本教程将深入探讨如何在Android应用中使用Fragment,以及如何进行嵌套使用,特别是在创建底部菜单和顶部菜单的场景下,类似微信和QQ的分页菜单设计。 1. **Fragment的基本使用**: - 创建Fragment:通过继承...

Global site tag (gtag.js) - Google Analytics