今晚在做应用程序时,需要用到 Menu。左思右想还是决定编写 menu.xml 的方式来完成,这样做的好处:1、方便管理(这也正是android应用xml的原因之一);2、便于修改。在 Android 中任何视图组件的创建方式都有两种:1、在XML文件中创建;2、在代码中创建。Menu 也不例外,我们既可以在资源文件中声明,也可以在代码中创建。
Android 中的菜单分为:1、选项菜单 ,2、上下文菜单和子菜单,都可以在XML文件中声明定义,在代码中通过MenuInflater 类来使用。本节主要讲 Menu 在 XML 中的定义以及在程序中的应用。
一、 Menu 资源文件的定义
Menu 资源文件也是一个XML文件,该文件存放于工程的res\menu\menu.xml 目录下。通过R.menu.menu的方式来引用。
Menu 资源文件的结构:
1、<menu>根元素,在<menu>根元素里面会嵌套<item>和<group>子元素,<menu>根元素没有属性。
2、<item>元素中也可嵌套<menu>形成子菜单。
3、<group>表示一个菜单组,相同的菜单组可以一起设置其属性,例如visible、enabled和checkable等。<group>元素的属性说明如下:
— id:唯一标示该菜单组的引用id。
— menuCategory:对菜单进行分类,定义菜单的优先级,有效值为container、system、secondary和alternative。
— orderInCategory:一个分类排序整数。
— checkableBehavior:选择行为,单选、多选还是其他。有效值为none、all和single。
— visible:是否可见,true或者false。
— enabled:是否可用,true或者false。
<item>表示菜单项,包含在<menu>或<group>中的有效属性。<item>元素的属性说明如下。
— id:唯一标示菜单的ID引用。
— menuCategory:菜单分类。
— orderInCategory:分类排序。
— title:菜单标题字符串。
— titleCondensed:浓缩标题,适合标题太长的时候使用。
— icon:菜单的图标。
— alphabeticShortcut:字符快捷键。
— numericShortcut:数字快捷键。
— checkable:是否可选。
— checked:是否已经被选。
— visible:是否可见。
— enabled:是否可用。
二、Menu 在程序中的应用
在定义了 Menu 后,接下来就是在程序中去应用它,方法如下:
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
下面来个实例:
1、定义Menu 文件(res\menu\blacklist.xml):
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="File" android:icon="@drawable/icon">
<menu>
<group android:id="@+id/noncheckable_group"
android:checkableBehavior="none">
<item android:id="@+id/newFile" android:title="New"
android:alphabeticShortcut="n" />
<item android:id="@+id/openFile" android:title="Open"
android:alphabeticShortcut="o" />
<item android:id="@+id/saveFile" android:title="Save"
android:alphabeticShortcut="s" />
</group>
</menu>
</item>
<item android:title="Edit" android:icon="@drawable/icon">
<menu>
<group android:id="@+id/edit_group" android:checkableBehavior="single">
<item android:id="@+id/cut" android:title="Cut" android:checked="true"/>
<item android:id="@+id/copy" android:title="Copy" />
<item android:id="@+id/past" android:title="Past" />
</group>
</menu>
</item>
<item android:title="Help" android:icon="@drawable/icon">
<menu>
<group android:id="@+id/help_group">
<item android:id="@+id/about" android:title="About" />
<item android:id="@+id/exit" android:title="Exit" />
</group>
</menu>
</item>
</menu>
2、程序中应用:
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.blacklist, menu);
return super.onCreateOptionsMenu(menu);
}
分享到:
相关推荐
本篇将深入探讨如何在Android中实现自定义Menu。 首先,我们需要了解Android系统的Menu机制。Android中的Menu主要分为三类:Option Menu(主菜单)、Context Menu(上下文菜单)和PopupMenu(弹出式菜单)。Option ...
下面是一段示例代码,展示了如何创建一个简单的自定义menu菜单: ```java // 加载布局 LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View popupView = ...
在Android开发中,自定义Menu和TabMenu是提升用户体验、个性化应用界面的重要手段。这篇“Android提高十八篇之自定义Menu(TabMenu)”的主题聚焦于如何在Android应用中创建和定制化自己的菜单栏和标签页功能。下面...
在Android应用开发中,自定义标题栏是一种常见的需求,它能提供更加个性化和与应用主题相符的用户体验。本文将深入探讨如何在Android中实现自定义标题栏,包括修改其高度和修复可能出现的显示问题。 首先,我们要...
本示例“android自定义弹出menu”着重介绍了如何创建一个类似于QuickContactBadge的自定义菜单,它具有出色的动画效果,提升了应用的用户体验。 QuickContactBadge是Android SDK中一个用于快速联系的组件,点击后...
本示例"android menu自定义菜单 Demo"将向我们展示如何在Android应用程序中创建和定制菜单项,以提供更加丰富的交互功能。让我们深入探讨一下这个话题。 首先,菜单在Android中主要用于在不占据屏幕主要空间的情况...
本篇将深入探讨在Android中如何自定义Action Bar,基于提供的链接资源`http://blog.csdn.net/zhong1113/article/details/46332563`。 首先,我们需要理解Action Bar的基本结构。它通常包含以下部分: 1. 应用程序...
本文将深入探讨如何实现Android自定义菜单,并结合QuickContactBadge控件的使用,为用户提供更加丰富的交互体验。 首先,我们来了解自定义菜单的基本概念。在Android中,菜单通常在Action Bar或Overflow Menu中显示...
Android默认的`Menu`布局是左对齐的,但我们可以修改主题或者在XML布局中添加自定义样式来实现居中。这通常涉及到更改`android:layout_gravity`属性,或者在自定义样式中设置`android:gravity`。 如果想要全局改变...
自定义Menu是Android开发中的一个重要概念,它允许开发者根据应用的需求创建个性化的菜单项,以提供更为丰富的用户体验。在Android应用中,Menu主要用于在特定场景下显示一系列操作选项,如在活动(Activity)的选项...
总结一下,"Android自定义菜单属性DEMO"主要教授了如何在Android应用中创建一个自定义的菜单按钮组件,并通过自定义属性控制其外观和行为。这包括在attr.xml文件中定义属性,解析这些属性并在自定义View类中使用它们...
总结,自定义Android中的`Menu`菜单涉及XML资源文件的编写、菜单项的响应处理以及组件的选择和布局设计。通过以上步骤,我们可以创建出类似UC浏览器那样功能丰富的菜单,提高用户体验。在实际开发中,应结合具体需求...
总结,Android自定义标题栏是一项关键的UI定制技术,它让开发者能够创建符合品牌风格的界面,提升用户交互体验。通过学习和实践,我们可以熟练掌握自定义标题栏的各种技巧,包括但不限于添加菜单项、设置点击事件、...
创建Menu资源 在`res`目录下,创建一个新的文件夹`menu`(如果尚未存在)。在`menu`文件夹内,创建一个XML文件,例如`main_menu.xml`。这个XML文件将定义`Menu`的结构。 ```xml <menu xmlns:android=...
在Android开发中,自定义菜单是一项重要的功能,它允许开发者为应用程序创建个性化和功能丰富的交互界面。本篇文章将深入探讨如何在Android系统中实现自定义菜单,并提供相关的知识点。 首先,我们来理解Android中...
在Android开发中,`PopupWindow` 是一个非常实用的组件,它允许我们创建弹出式窗口,用于显示一些临时信息或者交互操作。本教程将详细讲解如何封装一个通用的`PopupWindow`,以便在项目中复用,降低代码冗余,提高...
创建Menu资源** 首先,我们需要在项目的res/menu目录下创建一个XML文件,例如`menu.xml`,用于定义菜单项。在这个XML文件中,我们可以使用`<menu>`标签作为根元素,然后用`<item>`标签来定义每个菜单项,包括其ID、...
在本资源“menu单选菜单.zip”中,我们很显然关注的是如何在Android中创建和使用单选菜单(Radio Menu)。单选菜单允许用户在多个选项中选择一个,只有一个选项可以被选中。接下来,我们将深入探讨这一主题。 首先...