Android中Menu详解

Android-第五节Menu菜单详解 一、Menu背景 二、Menu使用步骤 1.创建menu 2.设计menu 3.重写menu逻辑代码 4.运行效果: [](()一、Menu背景 ======================================================================= 手机毕竟和电脑不同,它的屏幕空间非常有限,因此充分地利用屏幕空间在手机界面设计中就显得非常重要了。如果你的活动中有大量的菜单需要显示,这个时候界面设计就会比较尴尬,因为仅这些菜单就可能占.. 阅读详情

一、 使用xml定义Menu

菜单资源文件必须放在res/menu目录中。菜单资源文件必须使用<menu>标签作为根节点。除了<menu>标签外,还有另外两个标签用于设置菜单项和分组,这两个标签是<item>和<group>。

<menu>标签没有任何属性,但可以嵌套在<item>标签中,表示子菜单的形式。不过<item>标签中不能再嵌入<item>标签。

1.<item>标签的属性含义如下:

Id:表示菜单项的资源ID

menuCategory:同种菜单项的种类。该属性可取4个值:container、system、secondary和alternative。通过menuCategroy属性可以控制菜单项的位置。例如将属性设为system,表示该菜单项是系统菜单,应放在其他种类菜单项的后面。

orderInCategor:同种类菜单的排列顺序。该属性需要设置一个整数值。例如menuCategory属性值都为system的3个菜单项(item1、item2和item3)。将这3个菜单项的orderInCategory属性值设为3、2、1,那么item3会显示在最前面,而item1会显示在最后面。

title:菜单项标题(菜单项显示的文本)

titleCondensed:菜单项的短标题。当菜单项标题太长时会显示该属性值

icon:菜单项图标资源ID

alphabeticShortcut:菜单项的字母快捷键

numericShortcut:菜单项的数字快捷键

checkable:表示菜单项是否带复选框。该属性可设计为true或false

checked:如果菜单项带复选框(checkable属性为true),该属性表示复选框默认状态是否被选中。可设置的值为true或false

visible:菜单项默认状态是否可视

enable:菜单项默认状态是否被激活

2.<group>标签的属性含义如下:

id:表示菜单组的ID

menuCategory:与<item>标签的同名属性含义相同。只是作用域为菜单组

orderInCategory:与<item>标签的同名属性含义相同。只是作用域为菜单组

checkableBehavior:设置该组所有菜单项上显示的选择组件(CheckBox或Radio Button)。如果将该属性值设为all,显示CheckBox组件;如果设为single,显示Radio Button组件;如果设为none,显示正常的菜单项(不显示任何选择组件)。要注意的是,Android SDK官方文档在解释该属性时有一个笔误,原文是:

Whether the items are checkable. Valid values: none, all(exclusive/radiobuttons), single(non-exclusive/checkboxes).

相反了,正确应该是

all(non-exclusive/checkboxes),single(exclusive/radiobuttons).

visible:表示当前组中所有菜单项是否显示。该属性可设置的值是true或false

enable:表示当前组中所有菜单项是否被激活。该属性可设置的值是true或false

3.具体使用

在代码中使用

public boolenonCreateOptionsMenu(Menu menu){

MenuInflatemenuInflate = getMenuInflate();

menuInflate.inflate(R.menu.option_menu,menu);

returntrue;

}

二、使用代码定义Menu

public boolean onCreateOptionsMenu(Menu menu){  

// 方法一,用代码构建   

 menu.add(Menu.NONE, Menu.NONE, 1, "菜单1");  

 menu.add(Menu.NONE, Menu.NONE, 2, "菜单2");  

 menu.add(Menu.NONE, Menu.NONE, 3, "菜单3");  

 menu.add(Menu.NONE, Menu.NONE, 4, "菜单4");  

menu.add(Menu.NONE, Menu.NONE, 5, "菜单5");  

menu.add(Menu.NONE, Menu.NONE, 6, "菜单6");  

return true;  

}  

三、菜单响应

重写onOptionsItemSelected(MenuItem item)这个方法就可以做响应的操作了。

四、实例

res/menu下的activity_main.xml文件

复制代码
 1 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
 2 
 3     <item
 4         android:id="@+id/menu_settings"
 5         android:orderInCategory="1"
 6         android:icon="@drawable/home"
 7         android:title="@string/menu_settings"/>
 8     <item
 9         android:id="@+id/menu_about"
10         android:orderInCategory="2"
11         android:icon="@drawable/mine"
12         android:title="@string/menu_about"/>
13     <item
14         android:id="@+id/menu_quit"
15         android:orderInCategory="3"
16         android:icon="@drawable/more"
17         android:title="@string/menu_quit"/>
18     
19 </menu>
复制代码

MainActivity.java文件

复制代码
 1 package com.example.menutest;
 2 
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.view.Menu;
 6 import android.view.MenuItem;
 7 import android.widget.Toast;
 8 
 9 public class MainActivity extends Activity {
10 
11     @Override
12     protected void onCreate(Bundle savedInstanceState) {
13         super.onCreate(savedInstanceState);
14         setContentView(R.layout.activity_main);
15     }
16 
17     @Override
18     public boolean onCreateOptionsMenu(Menu menu) {
19         // Inflate the menu; this adds items to the action bar if it is present.
20         getMenuInflater().inflate(R.menu.activity_main, menu);
21         return true;
22     }
23 
24     @Override
25     public boolean onOptionsItemSelected(MenuItem item) {
26         // TODO Auto-generated method stub
27         switch(item.getItemId()){
28            case R.id.menu_about:           
29                Toast.makeText(MainActivity.this, ""+"关于", Toast.LENGTH_SHORT).show();
30                break;
31            case R.id.menu_settings:
32                
33                Toast.makeText(MainActivity.this, ""+"设置", Toast.LENGTH_SHORT).show();
34                break;
35            case R.id.menu_quit:
36                
37                Toast.makeText(MainActivity.this, ""+"退出", Toast.LENGTH_SHORT).show();
38                break;
39            default:
40                break;
41            }
42 //           Toast.makeText(MainActivity.this, ""+item.getItemId(), Toast.LENGTH_SHORT).show();
43     
44         return super.onOptionsItemSelected(item);
45     }
46 
47 }
复制代码

运行结果:

Android 中选项菜单(Option menu)的用法 先看下效果: 菜单在程序中使用颇为广泛,几乎所有的桌面应用都含有菜单。Android的菜单分为三种类型 option menu:选项菜单 context menu: 上下文菜单 popup menu:弹出菜单 本文讲解的是选项菜单。 1.首先在res目录下,创建menu文件夹,之后在menu文件中,创建item_menu.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.andro 阅读详情

相关推荐

Android三种常用菜单Menu(OptionMenu,ContextMenu,PopupMenu)的详细讲解使用(全网最详细)

一、 OptionMenu 1、首先在项目目录下的res资源目录下,新建一个资源文件夹menu (1)res目录的位置如下 (2)新建名称为menu的包 2、然后在menu的包下新建Menu Resource File资源文件 (1)文件名字自己任意填写即可,我这里写的是optionmenu (2)然后点击ok即可,资源文件新建完成之后会出现以下xml界面 (3)此时的界面是最初的界面,然后我们开始书写菜单的界面,这里就简单的写一下菜单的选项,仅做测试学习,修改optionmenu.xml文件如下

m0_58941767的博客 8372

Android中Menu的基本用法

一、 使用xml定义Menu 菜单资源文件必须放在res/menu目录中。菜单资源文件必须使用标签作为根节点。除了标签外,还有另外两个标签用于设置菜单项和分组,这两个标签是和。 标签没有任何属性,但可以嵌套在标签中,表示子菜单的形式。不过标签中不能再嵌入标签。 1.标签的属性含义如下: Id:表示菜单项的资源ID menuCategory:同种菜单项的种类。该属性可取4个值:contai

BerMaker 10万+

Android按键之Menu详解

Android手机一般都有三个键,返回键、Home键、菜单键; Android系统的菜单支持主要通过4个接口来实现。 从上图可以看出Menu是一个父类接口,它下面有两个子类一个是ContextMenu:它表示是一个上下文菜单,SubMenu表示一个子菜单。它们都可以包含一个或多个的MenuItem菜单项 Menu接口定义了两个方法来添加菜单项和添加子菜单。一个通过add()方法添加菜

村头那抠脚大叔的专栏 1万+

Android中菜单栏的使用(选项菜单)

1.简介 菜单是许多应用类型中常见的用户界面组件。要定义菜单,要在项目 res/menu/ 目录内创建一个 XML 文件(如果没有则创建),下面是一个例子,显示效果如图(“更多”也是菜单选项,只是设置了showAsAction属性放到了外面)。 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:app="http://schem...

‎‎‎‎‎不想吃泡面 950

android Menu菜单详解

Android系统里面有3种类型的菜单:options menu,context menu,sub menu。   options menu    按Menu键就会显示,用于当前的Activity。     它包括两种菜单项:         因为options menu在屏幕底部最多只能显示6个菜单项,这些菜单项称为icon menu,icon menu只支持文字(title) 以

大数据处理,智能搜索推荐,自然语言处理,AI机器人对话,数据库读写分离 2139

XCAT集群管理实战:从裸机到节点批量部署

在数据中心与HPC集群运维中,裸机配置与操作系统批量部署是关键环节。PXE引导、IPMI带外管理等基础技术为自动化装机提供了底层支持,而集群管理工具则将这些能力整合为可扩展的运维体系。XCAT作为一款开源集群管理工具,通过数据库驱动的方式统一管理DHCP、TFTP、HTTP等服务,实现从裸机发现、系统安装到电源控制的全流程自动化。本文从XCAT的核心设计出发,详细介绍了环境准备、安装配置、节点定义、镜像分发及常见问题排查,帮助运维人员快速构建高效的集群部署流程,降低规模化管理的复杂度。

weixin_30899023的博客 241

android基础学习-android篇day16-Menu的使用

Menu 基础知识 android提供的标准UI组件 menu 的总体概述  menu 是 android 的一个重要组件  menu 菜单是一款比较通用的用户体验的组件 从 Android 3.0 即 API 11 之后 android 系统没有提供单独的菜单按钮 Menu 菜单的分类  选项菜单(Options Menu);当用户触发 menu 项时弹出的菜单 ...

犟驴的博客 570

麒麟v10(ky10.x86_64)升级——openssl-3.2.2、openssh-9.8p1

执行命令: make -j 4 && make install 这里要等待一段时间,等待编译完成。执行命令: ./configure --prefix=/usr/local/src/zlilb。执行命令: ./config --prefix=/usr/local/src/openssl。执行命令: make -j 4 && make test && make install。执行命令: make -j 4 && make install。执行命令: /etc/init.d/sshd restart。

X_yufei的博客 7428

android menu作用,Android中menu使用详解

Menu(菜单)是Android中一定会使用的模块,每个Android项目都会用到Menu来给用户起到选择和导航的作用,提升用户体验,下面通过本文给大家分享android 中menu使用,需要的朋友一起看看吧很多activity界面中都存在一个菜单栏,就是点击右上角的一个按钮的时候会出现一个下拉列表差不多的东西,这个功能的实现其实只需要下面的两步,每一个activity都可以拥有自己独一无二的me...

weixin_35129495的博客 790

基于AutoDL复现A-LOAM

Ceres solver 是谷歌开发的一款用于非线性优化的库,在谷歌的开源激光雷达slam项目cartographer中被大量使用。在autodl上面租服务器,地区我租的重庆A区的,GPU我选择的是RTX4090,基础镜像选择的是Miniconda / conda3 / 3.8(ubuntu20.04)/11.6。在AutoDL中我使用的方式是先将该数据集先下载到自己的电脑上,然后再上传到虚拟机中。用MobaXterm解决该问题!搜到的一个解决方式:该问题属于ceres版本问题,将A-LOAM下的。

m0_61281610的博客 1942

告别理论!手把手教你用Patran/Nastran搞定悬臂翼的颤振分析(附完整模型文件)

本文提供了一份详细的Patran/Nastran悬臂翼颤振分析实战指南,涵盖从几何建模到结果解读的全过程。通过手把手教学和完整模型文件,帮助工程师和学生快速掌握气动弹性分析技术,特别适合需要实际操作的初学者。文章重点介绍了模态分析、气动建模和颤振求解等关键步骤,并提供了常见问题排查和优化建议。

weixin_30879169的博客 492

android使用menu需要重写的方法,Android中menu使用详解

Menu(菜单)是Android中一定会使用的模块,每个Android项目都会用到Menu来给用户起到选择和导航的作用,提升用户体验,下面通过本文给大家分享android 中menu使用,需要的朋友一起看看吧很多activity界面中都存在一个菜单栏,就是点击右上角的一个按钮的时候会出现一个下拉列表差不多的东西,这个功能的实现其实只需要下面的两步,每一个activity都可以拥有自己独一无二的me...

weixin_39841610的博客 800

LS-DYNA壳单元冲击仿真中的5个关键设置:以方管碰撞为例(含沙漏控制参数)

本文以方管碰撞为例,深入解析了LS-DYNA壳单元冲击仿真中的五个关键设置。重点探讨了沙漏控制参数(如IHQ=4)的选择逻辑、自接触算法优化、能量监控方法、材料模型(MAT_24)的真实应力-应变曲线与应变率效应设置,以及单元公式的选取。这些核心设置共同决定了仿真的精度与效率,是确保方管冲击仿真结果可靠性的基石。

salt的博客 623

Android menu属性详解

转自:http://blog.youkuaiyun.com/n3562141/article/details/50325717menu的属性展示<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@[+][pac

苦逼的程序猿☺ 4997

全网最全的AItium Designer 16下载资源与安装步骤

Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。...

WQ的博客 1万+

txt经纬度批量转面要素(附自定义ArcGIS工具箱方法)

当涉及大量txt坐标文件需要转换成面要素的时候,逐步操作工作量较大。本文由需求出发,以ArcGIS10.2为例,采用python脚本自定义ArcGIS工具,实现批量操作的目的。

m0_59216200的博客 1818

Android Menu 之 optionsMenu 详解

 optionsMenu就是用户在按下手机键盘上的Menu键时,Activity下方弹出的菜单。借个图展示一下:接下来,本文的主要内容有:1、 如何建立菜单2、 如何响应菜单上的点击动作3、 讲解Menu的各种属性及Group分组 首先,如何建立菜单。其实每个Activity都有处理菜单的能力,我们只需要重写onCreateOptionsMenu(M

彭香香的专栏 2万+

【异常】Cursor 模型服务地域访问限制报错的完整排查与解决方案This model provider doesn‘t serve your region

其本质是:Cursor客户端依赖的上游大语言模型服务提供商,基于自身服务的合规运营范围,对客户端发起的请求进行了来源地域权限校验;当系统检测到请求的网络来源地域,不在该模型服务商官方授权提供服务的地域范围内时,会触发服务访问拦截策略,拒绝响应本次模型调用请求,最终在客户端抛出该报错。合规声明:本文所提供的所有方案,均仅用于技术问题排查与解决,请您在使用过程中严格遵守当地法律法规,以及对应软件与模型服务提供商的用户协议与合规要求。更多关于AI+教育领域的干货,可以关注我的微信公众号一时间获取哦~

奶爸的编程之路,也就一周冷个三天 1133

android Menu详解

只要有下面两部分就可以初步的实现一个菜单的操作了噢 public boolean onCreateOptionsMenu(Menu menu){      MenuInflater inflater = this.getMenuInflater();      inflater.inflate(R.menu.sub_menu, menu);      return true;

me15933的专栏 4284

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android Composite(Menu)详解

目录:     1.Menu概述     2.Menu的一些常用属性     3.Menu分类         3.1 选项菜单(Option Menu)         3.2 上下文菜单(Context Menu)         3.3 弹出菜单(Popup Menu)         3.4 子菜单(Sub Menu)          1.Menu概述     Men

Andy_lau 1116

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

android 之Menu详解

基本概念:菜单:在应用程序中有很多类型的通用应用程序组件        A.选项菜单(OptionsMenu):当用户按手机上的菜单键时自动弹出的菜单            onCreateOptionsMenu(Menu menu):初始化菜单项时自动调用的方法            onOptionsItemSelected(MenuItem item):当处理用户点击菜单项时自动调用的方法 ...

小肥猫吃鱼的博客 2503

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android menu详解

前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享。 PS:强烈推荐《Pro Android 3》,是我至今为止看到的最好的一本android书,中文版出到《精通Android 2》。 理解Android的菜单 菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有搭载Android系统的手机甚至

jiangliloveyou的专栏 1873

Android Menu详解

菜单的分类 菜单是Android应用中非常重要且常见的组成部分,主要可以分为三类:选项菜单、上下文菜单/上下文操作模式以及弹出菜单。它们的主要区别如下: 1、选项菜单是一个应用的主菜单项,用于放置对应用产生全局影响的操作,如搜索/设置。 2、上下文菜单是用户长按某一元素时出现的浮动菜单。它提供的操作将影响所选内容,主要应用于列表中的每一项元素(如长按列表项弹出删除对话框)。上下文操作模式将在...

GracefulGuigui的博客 871

Android基础之Menu操作详解

菜单操作 菜单是一种常见的应用程序与用户交互的方式,它使用类似列表的形式显示用户可以操作的功能,而用户则可以通过菜单来选择要执行的操作,应用程序也可以对用户的选择进行相关的响应。Android系统中的菜单大致分为选项菜单、子菜单、上下文菜单。1、菜单分为两种 1)系统菜单(选项菜单) 创建系统菜单: 1、重写Activity的 onCreateOptionsMenu方

菜鸟的博客 702

android之menu详解

一、OptionMenu的使用        1、代码生成menu(重写activity的onCreateOptionMenu()方法) @Override public boolean onCreateOptionsMenu(Menu menu) { this.menu = menu; int groupId = 1; MenuItem item1 = menu

wangsfine的博客 5841
上一篇: shape详解
下一篇: NavigationView中获取headerLayout的方法
Android_Object
博客等级 码龄10年 1粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值