android:三种菜单(Menu)的设置

Android中的Menu功能菜单-OptionsMenu[选项菜单] Android中的菜单是用户界面中最常见的元素,使用也很频繁,在Android中,菜单被分为3种,分别为选项菜单(OptionsMenu)、上下文菜单(ContextMenu)、子菜单(SubMenu)。本文先讲选项菜单(OptionsMenu)的使用。      Android 阅读详情

(1)Menu 菜单

菜单分为三种(1)系统菜单:OptionMenu        当点击手机菜单键时弹出来的菜单

                        (2)上下文菜单:ContextMenu         比如当长按listView后弹出来的菜单键

                        (3)弹出菜单 :PopupMenu         当点击之后弹出来的菜单


(1)系统菜单设置步骤:

                      <1>首先在需要菜单的Activit生成回调方法:

                                                                       onCreateOptionsMenu(Menu menu)   (这个方法一般在创建项目的时候在MainActivity中生成,就不赘述了

                    <2>生成菜单上的每个item元素

                                        在res文件-------menu文件夹---------main.xml   中进行声明菜单的item

                     <3>为每个item设置监听事件

                                           调用方法:onOptionItemSelected(MenuItem item)

      

                                  {switch (item.getItemId()) {
                                   case R.id.action_settings:
                                        // 点击时显示系统的设置界面
                                   startActivity(new Intent(Settings.ACTION_SETTINGS));

                                        break;
                                       case R.id.action_add:
                                   // 点击时放大TextView上的字体
                                   textView.setTextSize(textView.getTextSize() + 5);
                                         break;
                                 case R.id.action_sub:
                                    textView.setTextSize(textView.getTextSize() - 5);
                                     break;
                                        }
                                    return super.onOptionsItemSelected(item);

                                     }

假如需要在菜单中设置图标则需要设置
// 为系统菜单项添加图标
	// enable为true时,菜单添加图标有效,enable为false时无效。4.0+系统默认无效
	private void setIconEnable(Menu menu, boolean enable) {
		try {
			Class<?> clazz = Class
					.forName("com.android.internal.view.menu.MenuBuilder");
			
			Method m = clazz.getDeclaredMethod("setOptionalIconsVisible",
					boolean.class);
			
			m.setAccessible(true);
			
			// MenuBuilder实现Menu接口,创建菜单时,传进来的menu其实就是MenuBuilder对象(java的多态特征)
			m.invoke(menu, enable);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

(2)上下文菜单(ContextMenu)

protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		textView = (TextView) findViewById(R.id.textView);
		// 1:给需要上下文菜单的UI视图注册上下文菜单
		// 当在textView上长按时会出现上下文菜单 ---会去回调创建上下文菜单的方法onCreateContextMenu
		registerForContextMenu(textView);
	}
	// 2:创建上下文菜单
	// menu接收的是上下文菜单对象,由系统创建
	// v接收的被注册了上下文菜单的视图对象
	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		// 创建菜单项对象并加入到上下文菜单对象中(menu)
		getMenuInflater().inflate(R.menu.main, menu);
		super.onCreateContextMenu(menu, v, menuInfo);
	}

	// 3:给上下文菜单项添加事件监听
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		<span style="color:#3333FF;">此处设置添加监听事件省略</span>
		}
		return super.onContextItemSelected(item);
	}
(3)弹出菜单:PopupMenu

//弹出菜单是从3。0才有的,所以api最低要求是 11
	public void showPopMenu(View v)
	{
		//创建弹出菜单对象
		//第二个参数是弹出菜单显示的参考位置,需要一个视图对象
		//点击按钮时,让弹出菜单在按钮旁边显示
		PopupMenu  pop = new PopupMenu(this, v);
		//把菜单项加入到弹出菜单中
		getMenuInflater().inflate(R.menu.main, pop.getMenu());
		
		//给菜单项添加事件监听
		pop.setOnMenuItemClickListener(new OnMenuItemClickListener() {
			@Override
			public boolean onMenuItemClick(MenuItem item) {
				//这里与前两个switch一致
				return false;
			}
		});
		<span style="color:#FF0000;">//显示菜单</span>
		pop.show();
	}




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文件如下 阅读详情

相关推荐

5QI(5G QoS Identifier)

此外,5QI与网络切片(Network Slicing)密切相关,网络切片允许网络运营商在物理网络内部创建虚拟网络,为不同的客户和用例提供定制化服务和QoS。5QI(5G QoS Identifier)在5G网络中用于标识不同的服务质量要求,它允许网络对不同的数据流进行优先级划分和资源分配。:5QI的实施需要对5G网络的QoS参数有深入的理解,包括延迟、吞吐量、数据包丢失率等,这对技术人员提出了较高的要求。不是所有的5G设备都支持5QI的全部功能,这可能会限制5QI应用的广泛性。

记录有价值的内容 6532

Android菜单Menu详解

菜单资源文件通常放置在res\menu目录下,在创建项目时,默认不自动创建menu目录,所以需手动创建。或在创建为标记的xml文件对自动气建眼为和设置ID,也就是唯一标识。设置标题。android:指定字符快捷键。android:指定数字快捷键。android:是否可用。android:是否可选。android:是否可见。android:是否已选用。

m0_57150356的博客 4817

汇川EASY系列之以太网通讯(MODBUS_TCP做主站)

汇川Easy系列以太网通讯中(MODBUSTCP,plc做主站),终于可以不用使用指令就可以完成了,全程通过简单的配置就可通讯。本文将通过EASY系列PLC与调试助手之间完成此操作。

这是一个长期关注工控行业技术的博客,实现0-1的突破,期待您的关注和留言 3303

34. 【Android教程】菜单:Menu

作为 Android 用户,你一定见过类似这样的页面:它就是我们今天的主角——菜单,它的使用场景和作用不用多说,几乎每个 App 都会用到它,今天我们就一起来看看 Android 提供的几种菜单类型及用法。

这是一个web全栈开发的博客,取其精华去其糟粕,争取让大家一看就懂,一学就会,一用就成~ 4760

Kali Linux实战:5分钟复现永恒之蓝漏洞攻击(附Win7靶机配置指南)

本文提供了一份详细的Kali Linux实战指南,指导读者在5分钟内于隔离的虚拟环境中复现经典的永恒之蓝漏洞攻击。内容涵盖从Windows 7靶机配置、网络设置,到使用Nmap进行服务发现、利用Metasploit框架进行漏洞扫描与利用的全过程,并演示了基础的Meterpreter后渗透操作,旨在帮助网络安全学习者通过亲手实践深入理解SMB协议漏洞的攻防原理。

weixin_29313547的博客 196

SAP Fiori 从技术上而言到底包含哪些组件?

SAP Fiori是企业级UX设计的系统化解决方案,基于五大原则构建:角色导向(Role-based)、自适应(Adaptive)、简洁(Simple)、一致(Coherent)和愉悦(Delightful)。其技术实现包含SAPUI5开发框架、Fiori Launchpad统一入口、OData服务网关等核心组件,通过标准化设计模式与开发工具链,显著提升企业应用的用户体验和开发效率。典型案例显示,遵循Fiori原则可缩短30%以上的操作时长,降低50%的培训成本。该体系既保持跨设备一致性,又支持业务场景的深

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 223

自定义menu

2.在资源文件 layout 里自定义 menu的布局 add_menu_list_view。1.先在XML里面随便画个图标用来做点击使用的。

m0_61442059的博客 378

C++设计模式之观察者模式

观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。这种模式通常用于实现分布式事件处理系统,当一个对象(称为“主题”或“发布者”)改变状态时,所有注册的观察者都会收到通知。

每天进步一点点。 600

Android应用中菜单(Menu)的位置显示问题

Android应用中菜单(Menu)的位置显示问题

宋金时的专栏 6万+

KEPServerEX 6 之驱动协议(UDD)实战 HTTP协议对接OpenWeatherMap天气 API全流程指南

本文分享了基于 KEPServerEX 6 的通用设备驱动(UDD)对接OpenWeatherMap天气API的实战方案。该方案针对工业物联网场景进行了深度优化,具有动态城市切换、运行时热配置、老旧JS引擎兼容等核心特性。文章详细介绍了从环境准备、脚本部署到Tag配置的全流程,重点解析了Legacy JS语法适配、Float类型安全处理等关键实现细节,并提供了完整的避坑指南和故障排查方法。该方案经过生产环境验证,可稳定实现气象数据采集与动态切换功能,适用于SCADA/MES系统集成场景。

-雲飛兄-博客 713

从零构建法律案例数据库:Python爬虫实战与法律文本挖掘全攻略

在当今数字化浪潮席卷全球的背景下,法律行业正经历着前所未有的变革。法律案例数据库作为法律大数据的重要组成部分,已经成为法律从业者、研究人员、法学院学生乃至企业法务部门的必备工具。然而,商业法律数据库如北大法宝、威科先行、LexisNexis等往往价格不菲,且数据访问受限。对于个人研究者或小型机构而言,构建一个定制化的法律案例数据库不仅能节省成本,更能根据特定研究需求灵活调整数据结构。

2201_76125261的博客 538

Android的菜单

android提供了三种菜单类型,分别为options menu,context menu,sub menu。options menu就是通过按home键来显示,context menu需要在view上按上2s后显示。这两种menu都有可以加入子菜单,子菜单不能种不能嵌套子菜单。 options menu最多只能在屏幕最下面显示6个菜单选项,成为icon menu,icon menu不能有che

513

MATLAB 基于深度学习的步态识别算法仿真

步态识别是一种通过分析人体行走方式来识别身份的技术。基于深度学习的步态识别算法利用卷积神经网络 (CNN) 提取步态特征,并通过分类器进行身份识别。基于深度学习的步态识别算法是实现身份识别的重要手段,具有广泛的应用前景。MATLAB 提供了丰富的工具和函数,可以方便地进行算法仿真和性能评估。

走向CTO的路上... 518

Menu菜单

系统菜单OptionsMenu //这是onCreateOptionsMenu菜单和监听 //重写onCreateOptionsMenu加载资源文件 @Override public boolean onCreateOptionsMenu(Menu menu) { //获取连接菜单的布局 getMenuInflater().inflate...

Sun_Sees_You的博客 253

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Menu菜单的简介和简单用法

Menu菜单项系统菜单(OptionsMenu)流程步骤上下文菜单(ContextMenu)弹出菜单(PopupMenu)![在这里插入图片描述](https://img-blog.csdnimg.cn/2019051020021470.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM...

SageDeceiveFiend的博客 885

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

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

Android的几种按钮控件: Options Menu / Context Menu / Panel Menu

Android Activity 有三种Menu:Options Menu,Context Menu, Panel Menu。 options menu: 按MENU键来显示, 在屏幕最下面最多显示6个菜单选项(icon menu,不可以有checkable),如果多于6个的其他的会以“more” icon menu来调出(expanded menu),通过activity的o...

weixin_30768661的博客 136

android menu xml 属性,Android中Menu类型及常见属性说明

Android系统里面有3种类型的菜单:options menu,contextmenu,sub menu。一、optionsmenu按Menu键就会显示,用于当前的Activity。它包括两种菜单项:因为options menu在屏幕底部最多只能显示6个菜单项,这些菜单项称为icon menu ,iconmenu只支持文字(title)以及icon,可以设置快捷键,不支持checkbox以及ra...

weixin_39576133的博客 474

Android基本之Menu菜单

选项菜单Options Menu 上下文菜单Context Menu 子菜单Submenu;add()方式与xml定义方式添加菜单项

huxud1982的专栏 1745

android系统menu菜单选项设置

第一次写简单的menu按钮,基本的方法运用实现

OnlyRailgun的博客 3761

AndroidStudio之option menu菜单的使用

菜单在程序中使用颇为广泛,几乎所有的桌面应用都含有菜单。Android的菜单分为三种类型 option menu:选项菜单 context menu: 上下文菜单 popup menu:弹出菜单 option menu 首先,好多人在使用选项菜单的过程中发现真机上并没有虚拟机上面的显示的三个点,无法使用菜单,这并不是菜单的问题。Android应用中的菜单默认是看不见的,只有当用户按...

fjnu_se的博客 4194

Android 动态更新Menu菜单

Android Menu菜单动态更新显示

u012514113的专栏 4227

Android 三种菜单(Menu)的实现

感谢大佬:https://blog.youkuaiyun.com/chileme/article/details/82944764 一、常用方法 java onCreateOptionsMenu(Menu menu) 每次Activity一创建就会执行,一般只执行一次,创建并保留Menu的实例; //获取MenuInflater MenuInflater inflater = getMenuI...

Jason的学习笔记 1570

android创建Menu菜单

上图看效果: menu.git首先在res文件夹创建一个menu文件夹,再在menu文件夹中创建一个menu resource file,命名为main。在此文件中添加如下代码: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;menu xmlns:android="http://schemas.android.com/apk/res/and...

一条老狗的博客 2453

android中快捷菜单,Menu控件(Android设置选项菜单和快捷菜单)

首先区分一下什么是选项菜单,什么是快捷菜单。选项菜单是针对整个页面布局的,在这个页面布局的右上方,点击之后可以会展开选项,供大家选择。快捷菜单正如其名,十分方便,因为他可以依赖于任何控件,定义之后只需要长摁此控件,菜单列表就会出现,如右:定义选项菜单和快捷菜单都是有两种方法,一种是直接在activity文件中代码书写,这种方法相对比较繁琐,但是灵活性更高。还有一种是通过菜单布局文件直接定义。但是和...

weixin_32998219的博客 1762

Android_三种常用Menu菜单(附源码)

浅浅记录一下我写菜单的代码,我写了一共有三种菜单,从常用到不常用。

https://blog.youkuaiyun.com/qFAFAF 3385

android 自定义menu菜单,android 自定义menu菜单样式

Android系统中的menu样式不是太好,可以自定义。运行效果 CustomActivity.java继承Activity.java 在此文件中实现了不同于系统的dialogimport java.util.ArrayList;import java.util.HashMap;import android.app.Activity;import android.app.AlertDialog;i...

weixin_29819789的博客 2555
上一篇: ListView以及自定义适配器
下一篇: android高级 xUtils 第三方框架的使
AlwaysDebug
博客等级 码龄11年 2粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值