`

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菜单中添加子菜单项。

    注:菜单只能有一级子菜单,不支持多级。
分享到:
评论

相关推荐

    最新最实用的android菜单界面布局

    "最新最实用的android菜单界面布局"指的是采用最新的设计趋势和技术,优化用户体验的Android应用菜单布局。这样的设计不仅能提升应用的美观度,还能提高用户的交互效率。下面我们将深入探讨Android菜单界面布局的...

    android多级菜单列表设计例程

    本示例程序“android多级菜单列表设计例程”提供了实现这一功能的基础框架,适用于开发者进行二次开发,比如将其修改为多级选择框。 在Android中,菜单通常由`Menu`类和`MenuItem`类来表示,它们是Android SDK中的...

    android超漂亮菜单

    在Android应用开发中,设计一个美观且用户友好的菜单是至关重要的,因为它直接影响到用户的交互体验。"android超漂亮菜单" 提供了一种实现方法,它以丝般顺滑的操作感和独特的视觉效果吸引用户。下面我们将深入探讨...

    Android菜单定制总结

    本篇文章将深入探讨如何在Android中自定义菜单,包括菜单的设计、创建、显示以及与用户交互的方式。我们将从以下几个方面进行详细阐述: 1. **菜单的基本结构** Android中的菜单主要分为三种类型:选项菜单...

    Android基础教程(五)之-Menu功能菜单设计

    ### Android基础教程(五)之-Menu功能菜单设计 #### 一、引言 在本章节中,我们将深入了解如何在Android应用中实现功能菜单的设计。菜单是用户界面的一个重要组成部分,能够提供给用户一系列可选的操作选项。通过...

    Android安卓经典设计例程源代码-MenuXmlSample.rar

    总结来说,MenuXmlSample是一个深入学习Android菜单设计的宝贵资源,它涵盖了菜单的基本用法、事件处理、动态更新、样式定制以及与Fragment的集成等多个方面。通过分析和实践这个例程,开发者可以提升自己的Android...

    android版path2.0菜单源码

    1. **Android 菜单设计**:在Android开发中,菜单主要用于展示应用程序的主要操作选项,通常在屏幕的顶部或底部。Path 2.0的菜单设计遵循了Material Design指南,提供了清晰、直观的交互方式,增强了用户的使用体验...

    android菜单切换

    在实际开发中,这种创新的菜单设计可以用于导航、设置或其他需要展示多个选项的场景,提升应用的可玩性和美观性。 总的来说,"android菜单切换"项目涉及到了Android自定义视图、动画、触摸事件处理和几何计算等多个...

    Android Studio 底部自定义菜单

    总结起来,Android Studio中的底部自定义菜单设计涉及到了Android UI组件、菜单资源管理、事件监听、数据模型以及视图更新等多个方面。通过熟练掌握这些知识点,开发者能够构建出功能丰富且用户体验优秀的Android...

    android菜单导航

    "android菜单导航"这个主题涵盖了如何实现这样的交互效果,通常包括侧滑菜单、底部导航栏等组件的使用。下面我们将详细探讨这一领域的关键知识点。 1. **侧滑菜单(Slide-out Navigation Drawer)** - 侧滑菜单是...

    Android安卓经典设计例程源代码-MenuSample.rar

    本文将深入解析MenuSample的源代码,帮助开发者理解和掌握Android菜单设计的基本原理和实践技巧。 1. **菜单的创建** 在Android中,菜单通常在XML资源文件中定义,位于`res/menu`目录下。MenuSample可能包含如`...

    Android多级菜单的简单实现

    首先,我们需要理解Android菜单的基本概念。在Android中,菜单通常通过`Menu`类来实现,它可以在Activity的`onCreateOptionsMenu()`方法中进行定义和填充。然而,对于多级菜单,我们可能需要自定义视图或使用现有的...

    android 菜单导航栏

    在Android应用开发中,菜单导航栏是用户界面设计的关键元素之一,它提供了应用程序的主要功能入口,使得用户可以方便地在各个页面之间切换。本资源主要介绍了一种独特的底部导航栏——“卫星菜单”,这是一种设计...

    android 侧滑菜单-实例代码

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

    Android仿美团外卖菜单界面

    Android仿美团外卖菜单界面 Android仿美团外卖菜单界面是Android开发中一个常见的界面,主要用于展示菜单信息。它通常由左侧菜单类别列表和右侧菜单详情列表组成。本文将详细介绍Android仿美团外卖菜单界面的实现...

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

    在Android开发中,创建独特且吸引用户的界面设计是至关重要的,而"Android实现以圆心散开的半圆型导航菜单"就是一个旨在提供创新交互体验的项目。这个源码库帮助开发者构建一种动态的、从圆心向外散开的半圆形导航...

    android 扇形菜单(属性动画实现)

    在Android开发中,扇形菜单是一种独特且吸引用户的交互设计,它通过展开一系列扇形的选项来呈现菜单项。本文将深入探讨如何使用属性动画在Android中实现这种效果。 首先,我们要理解Android属性动画系统的基本概念...

    Android圆形旋转菜单.rar

    "Android圆形旋转菜单"是一个创新的设计元素,它能够为应用添加动态、有趣且直观的导航方式。这个压缩包可能包含了一个实现此类菜单的示例项目,让我们来详细探讨一下这种菜单的设计理念以及如何在Android应用中实现...

Global site tag (gtag.js) - Google Analytics