`
isiqi
  • 浏览: 16465891 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Android Menu 之 optionsMenu 详解

阅读更多

optionsMenu就是用户在按下手机键盘上的Menu键时,Activity下方弹出的菜单。借个图展示一下:

接下来,本文的主要内容有:

1、 如何建立菜单

2、 如何响应菜单上的点击动作

3、 讲解Menu的各种属性及Group分组

首先,如何建立菜单。

其实每个Activity都有处理菜单的能力,我们只需要重写onCreateOptionsMenu(Menu menu)这个方法就可以建立菜单了。具体操作起来有两种方法。

方法一,直接用代码构建Menu

方法二,先用xml文件构建好Menu,再到代码里加载。

例如,res/menu/option_menu_1.xml内容如下:

则在Activity里这样写:

其次,如何响应菜单上的点击动作

我们只需要重写onOptionsItemSelected(MenuItem item)这个方法就可以做响应的操作了。代码如下:

最后,在设置Menu的时候,有些属性值得一说。

第一个,Item的属性:menuCategory,它的取值一共有四个。我们可以在xml文件中写上android:menuCategory="container",也可以在用代码构建Menu时这样写:menu.add(groupid,itemid,Menu.CATEGORY_CONTAINER,title);四个取值的具体内容可以参见API中Menu的静态属性部分。那这四个分类是有什么用的呢?根据API资料,这个分类应该是跟菜单展示时各项的排序有关系的。但是我试过不同的菜单项设不同的MenuCategory值,但结果并不是预期的那样,预期是:数值越小的越靠上,靠左。但有一点可以确认,MenuCategory不设值(默认为0)时,菜单项是排在最左上角的。

第二个,Item的属性:orderInCategory,它的取值是0-0xffff之间的整数。也是设置排序顺序的。它跟第一个属性有啥关系呢?就是一个菜单项最终的Order值是MenuCategory值与orderInCategory值相加的结果。

还有Group分组,在xml创建Menu时,已经演示了Group的使用。我们使用Group是为了方便处理那些拥有相同特征的菜单项。比如有几个菜单是要登录了才可以使用,或者部分菜单项前面要加选择框,那我们就可以将它们放到一组,后面对这一个组进行操作就行了。

最后再补充一个对Menu进行样式设置的问题。API中没有提供设置背景等的方法。有朋友已经解决了些问题。在此贴上链接。

http://blog.csdn.net/sodino/archive/2011/01/26/6165132.aspx

分享到:
评论

相关推荐

    android各组件详解- Menu

    #### 二、OptionsMenu详解 - **onCreateOptionsMenu(Menu menu)**:此方法用于创建OptionsMenu,它只在菜单首次显示时调用。在这里可以定义菜单项,包括它们的ID、图标和文本等内容。 - **onPrepareOptionsMenu...

    Android--详解安卓中的Menu.rar

    - 主要有三种类型的Menu:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。 2. **创建Option Menu** - 在`res/menu`目录下创建XML文件来定义菜单项,每个菜单项是一个标签。 - ...

    详解Android中的Menu菜单键

    在Android 3.0(API级别11)及更高版本中,Action Bar取代了传统的Options Menu,但为了兼容低版本系统,可以使用`android:showAsAction`属性控制菜单项是否显示在Action Bar中。 总的来说,Android中的Menu提供了...

    android各组件详解

    菜单有三种形式:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。开发者可以通过重写`onCreateOptionsMenu()`、`onPrepareOptionsMenu()`以及`onOptionsItemSelected()`方法来创建...

    安卓Android源码——MenuSample.rar

    1. **Android菜单基础**:在Android中,菜单主要分为三种类型:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。选项菜单通常在屏幕顶部显示,而上下文菜单在长按元素时出现,弹出式...

    android 各种菜单详解 经典完整代码

    Android菜单主要有三种类型:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。选项菜单通常显示在屏幕顶部,与设备的硬件菜单按钮或虚拟菜单按钮关联;上下文菜单在长按某项内容时...

    Android典型技术模块开发详解

    8.10.1 options menu 8.10.2 context menu 8.10.3 sub menu 8.11 Notification(通知) 8.11.1 一般的Notification 8.11.2 带进度的Notification 8.12 Toast(提示) 8.13 本章小结 第9章 风格与动画 9.1 主题与风格...

    Android使用onCreateOptionsMenu()创建菜单Menu的方法详解

    1. 选项菜单(OptionsMenu):通常在屏幕顶部或底部显示,当用户点击菜单按钮时出现。 2. 上下文菜单(ContextMenu):针对特定视图或数据项弹出,如长按某条目时出现。 3. 子菜单(SubMenu):嵌套在其他菜单项下,...

    Android入门到精通源代码.

    6.1.2 选项菜单(OptionsMenu) 6.1.3 基于XML的菜单结构 6.2 界面布局设计 6.2.1 基于XML的布局设计 6.2.2 线性布局(LinearLayout) 6.2.3 相对布局(RelativeLayout) 6.2.4 表格布局(TableLayout) 6.2.5 绝对...

    android-support-v7.rar

    appcompat-v7提供了对OptionsMenu的兼容性,使得开发者可以使用菜单图标和上下文菜单,这些在旧版Android中可能不被支持。 三、使用appcompat-v7 使用appcompat-v7的步骤通常包括以下几个部分: 1. 在build.gradle...

    android4.0 actionbar API

    ### Android 4.0 ActionBar API 知识点详解 #### 一、ActionBar 概述 ActionBar 是 Android 4.0 (API 级别 14) 引入的一个新特性,它替代了传统的标题栏 (title bar),并提供了一个更丰富、更灵活的界面控件,用于...

    最新Android开发工程师Android测试卷二--考试题

    【Android 开发工程师测试知识点详解】 1. **Activity**: - Activity是Android四大组件(Activity、Service、BroadcastReceiver、ContentProvider)之一。 - 它通常作为一个Java类实现,用于构建用户界面并与...

    Android编程之菜单的实现方法实例详解

    Android菜单主要包括三种类型:选项菜单(Options Menu)、上下文菜单(Context Menu)和子菜单(Submenu)。下面我们将详细介绍这三种菜单的实现方法。 **一、选项菜单 (Options Menu)** 选项菜单通常在用户按下设备上...

    Android代码-五子棋游戏安卓客户端

    这些功能通常在`OptionsMenu`或`BottomNavigationView`中实现。 9. **多线程** - 如果游戏包含AI对战,可能需要在后台线程执行计算,以避免阻塞主线程并保持UI流畅。 10. **测试与调试** - 使用Android Studio...

    BASIC4Android写的NotePad范例

    4. **界面设计**: 界面抓图通常展示UI布局,如TextView(用于显示文本)、EditText(用于用户输入)、Button(执行操作如保存、删除)和OptionsMenu(如菜单项)。开发者需要考虑用户体验和响应式设计,确保应用在...

Global site tag (gtag.js) - Google Analytics