Android 使用XML自定义菜单

Android - 右上角选项菜单的简单的使用 1.在themes.xml文件中添加一个样式style2.在app引用的style里面的actionOverflowMenuStyle属性中引用这个样式style上代码:-- 引用自定义的选项菜单style -->--自定义选项菜单样式--> < style name = " actionbasg " parent = " @style/Widget.AppCompat.PopupMenu " > <!-- 是否覆盖锚点,默认为true,即盖住Toolbar --> 阅读详情
在Android里面有两种方式做菜单(Menu)。第一种写在 public boolean onCreateOptionsMenu(Menu menu) 直接写代码,第二种是把菜单放到一个XML文件里面来定义的
使用第一种方式不好的地方就是使Activity文件过大,因而我们采用第二种方式:

还是老规矩,先看效果图:
1.gif 





2.gif 


效果图如上,让我们来看看用代码是怎么来实现的。


第一步:
先在res目录下创建一个menu目录,这个用来专门存放菜单文件。

第二步:
新建一个xml文件,如下:
sys_menu.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <menu
  3. xmlns:android="http://schemas.android.com/apk/res/android">

  4. <item android:title="设置" android:id="@+id/menu_set" android:icon="@drawable/icon"/><!-- android:icon="@drawable/icon" 可以使用漂亮的图片 -->
  5. <item android:title="账户管理" android:id="@+id/menu_account" android:icon="@drawable/icon"/>
  6. <item android:title="更多" android:id="@+id/menu_more" android:icon="@drawable/icon">
  7. <menu>
  8. <group>
  9. <item android:title="Copy" android:id="@+id/edit_copy"/>
  10. <item android:title="Paste" android:id="@+id/edit_paste"/>
  11. <item android:title="Cut" android:id="@+id/edit_cut"/>
  12. <item android:title="Delete" android:id="@+id/edit_delete"/>
  13. </group>
  14. </menu>
  15. </item>


  16. <item android:title="更多1" android:id="@+id/menu_more1" android:icon="@drawable/icon">
  17. <menu>
  18. <item android:title="Open..." android:id="@+id/file_open"/>
  19. <item android:title="Save" android:id="@+id/file_save"/>
  20. <item android:title="Save as" android:id="@+id/file_saveas"/>
  21. <item android:title="Exit" android:id="@+id/file_exit"/>
  22. </menu>
  23. </item>
  24. </menu>
复制代码

XML文件就定义完毕了,简单吧。
好了,那我们看看Activity怎么写,
MenuActivity.java
  1. package com.droidstouch.xmlmenu;

  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.Menu;
  5. import android.view.MenuInflater;
  6. import android.view.MenuItem;
  7. import android.widget.Toast;

  8. /**
  9. * 
  10. * @author touchAndroid
  11. * URL:http://bbs.droidstouch.com
  12. */
  13. public class MenuActivity extends Activity {
  14. public void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.main);
  17. }


  18. /**
  19. * 重写onCreateOptionsMenu 方法
  20. */
  21. public boolean onCreateOptionsMenu(Menu menu)
  22. {
  23. //获取MenuInflater对象
  24. MenuInflater inflater = getMenuInflater();
  25. // 使用自定义的XML菜单文件
  26. inflater.inflate(R.menu.sys_menu, menu);

  27. return super.onCreateOptionsMenu(menu);
  28. }


  29. /**
  30. * 判断所选择的菜单
  31. */
  32. public boolean onOptionsItemSelected(MenuItem item)
  33. {

  34. switch (item.getItemId())
  35. {
  36. case R.id.menu_set:
  37. Toast.makeText(this, "选择了设置菜单", Toast.LENGTH_LONG).show();
  38. break;
  39. case R.id.menu_account:
  40. Toast.makeText(this, "选择了账户管理菜单", Toast.LENGTH_LONG).show();
  41. break;
  42. default:
  43. break;
  44. }
  45. return super.onOptionsItemSelected(item);
  46. }
  47. }
复制代码

完成这几步就搞定了,大功告成。
Android自定义View——从零开始实现可展开收起的水平菜单栏 给大家送上我成功跳槽复习中所整理的资料,由于文章篇幅有限,所以只是把题目列出来了,我自己手头上整理的资料均和上面的答案可免费分享,需要这些资料和答案的朋友,可以点击这里免费领取。由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)[外链图片转存中…(img-N2FeHrzi-1710826901522)] 阅读详情

相关推荐

Android仿印象笔记的自定义菜单控件

点击印象笔记添加笔记菜单按钮,便会弹出一系列的按钮用于添加不同的笔记。于是自己试着仿照印象笔记的菜单按钮,写出一个自定义的菜单控件。

ddxxll2008的专栏 2384

Android 菜单(Menu)控件的使用

1.通过XML布局添加菜单 首先在项目目录res下建立文件夹menu,然后在新建的menu文件夹下添加 menu.xml &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;menu xmlns:android="http://schemas.android.com/apk/res/android"&gt; &lt;item ...

dfdfdf 650

报表自定义菜单设计五大步骤之XML文档

此附件为报表自定义菜单设计期实现的XML文档 详细可参见我的个人博客

android开发之res下的menu (xml+代码的形式)

转载请注明出处:http://blog.youkuaiyun.com/fth826595345/article/details/9199393 先来看Menu  XML文件如何编写: <item android:id="@+id/c11_close" android:title="Close"

天歌独家博客 5554

Andriod 下拉多选菜单(布局可以自己写xml)

Andriod 下拉多选菜单(布局可以自己写xml).

【全部更新】2025金地杯E题山西省大学生数学建模思路代码文章教学:高速铁路牵引供电系统能耗优化

问题四将列车的运行速度与发车时间同时作为优化变量,建立联合优化模型,目标是在考虑电价机制和调度均衡性的前提下,使牵引供电系统一天内的总电费支出最小。问题三在考虑分时电价机制的基础上,基于遗传算法优化列车速度组合,使牵引供电系统一天内的总电费支出最小。然而,在实际运营中,不同时段的电价差异显著,合理安排列车的运行时间与运行速度,可有效降低系统的总电费支出。本研究聚焦于高速铁路牵引供电系统的能耗与电费优化问题,针对列车运行速度、发车时间与分时电价的综合影响,提出一系列数学模型,以实现系统能耗与电费的最小化。

xb459149247的博客 5289

Android原生创建菜单

首先,需要在res目录下创建一个名为menu的文件夹(名字随意),在文件夹中创建一个名为main.xml的xml文件; 在xml文件里写如下代码,可自定义: xml version="1.0" encoding="utf-8"?> menu xmlns:android="http://schemas.android.com/apk/res/android"> item androi

zjc_null的博客 622

【开关电源】开关电源实战经验分享

开关电源原理设计、Layout设计经验分享

weixin_42098658的博客 4167

xmlns:android="http://schemas.android.com/apk/res/android"的意思

Android开发中,使用XML时,看到xmlns:android="http://schemas.android.com/apk/res/android",但是却不明白这段代码的作用。查阅资料后整理如下: 一:       xmlns是XML Namespaces的缩写,中文名称是XML命名空间。       schemas是xml文档的两种约束文件其中的一种,规定了xml中有哪些元素

Seachal的博客 1万+

手把手教你解决uniapp中esbuild版本冲突问题(Mac版专属指南)

本文是针对Mac平台uniapp开发者的专属指南,详细解析了运行项目时常见的`Cannot start service`错误,即esbuild的Host版本与binary版本不匹配问题。文章从错误根源入手,提供了从快速应急处理到彻底根治的完整解决方案,包括手动替换二进制文件、锁定依赖版本、清理缓存及优化工具链配置,旨在帮助开发者高效解决版本冲突,恢复并稳定开发环境。

i0j1k2l3m的博客 458

深度学习|卷积神经网络

介绍卷积神经网络基本理论,包括卷积层、池化层和全连接层,并阐述LeNet卷积神经网络的构建过程。

weixin_58243219的博客 5722

android选项菜单xml,使用 XML 定义选项菜单

何为选项菜单?选项菜单是某个Activity的主菜单项,供您放置对应用产生全局影响的操作,如“搜索”、“撰写电子邮件”和设置。选项菜单中的项目在屏幕上的显示位置取决于您开发应用所使用的 Android 版本:如果您开发的应用适用于 Android 2.3.x (API 级别10)或更低版本,选项菜单的内容会出现在屏幕底部如下图所示,且当菜单项超过6个时,则会讲第六项和其余项目放入溢出菜单(即图中的...

weixin_35406812的博客 505

基于STM32F103与AD8232的便携式心电监测系统设计与实现

本文详细介绍基于STM32F103微控制器与AD8232心电传感器模块的便携式心电监测系统设计与实现。系统通过ADC采集心电信号,结合软件滤波算法处理基线漂移和工频干扰,并利用OLED屏幕实时显示波形,具有低成本、高实用性的特点,适用于健康监测与嵌入式学习。

m5n6o7的博客 737

android的xml置底_Android开发之使用xml自定义底部Menu菜单

menu菜单的布局文件: menu.xml文件内容xmlns:android="http://schemas.android.com/apk/res/android">android:id="@+id/menu_exit"android:orderInCategory="100"android:alphabeticShortcut="@drawable/btn_menu_bg"android...

weixin_42297347的博客 282

射频指纹识别技术:原理、应用与深度学习实现

射频指纹识别(RFFI)是一种基于硬件特征的设备身份认证技术,通过分析无线设备发射信号中的独特硬件特征实现设备识别。其核心原理源于发射器硬件电路的非线性特性,如功率放大器的相位噪声和混频器的非线性失真,这些特征具有难以伪造的特点。在物联网和边缘计算场景中,RFFI技术展现出独特优势,尤其在智能家居和工业物联网中,能有效防止非法接入和设备伪造。深度学习方法的引入进一步提升了RFFI的性能,通过自动特征提取和端到端优化,显著提高了识别准确率。本文详细探讨了RFFI的技术原理、应用场景及实现方法,为相关领域的研究

weixin_30457465的博客 889

7、布尔网络的基础定义

本文介绍了布尔网络的基础定义及其在系统生物学中的应用。布尔网络是一种描述复杂系统动态行为的数学模型,由布尔变量和布尔函数组成,能够模拟生物系统中基因调控、信号传导和细胞代谢等过程。文章详细阐述了布尔网络的基本结构、动力学特征(如状态转移图和吸引子),以及其在生物建模中的重要价值,并探讨了优化和简化技术(如Backward Boolean Equivalence)如何提升其计算效率。

yhn45678901的博客 262

安卓Android 下拉菜单栏的实现与使用

3、如果要设置spinner中文字的大小,需要自定义 Spinner 的适配器视图,创建自定义布局文件custom_spinner_item.xml(tips:@dimen/dp15可以改成15dp)dropdownMenu.getSelectedItemPosition():获取当前选中项的索引位置(从 0 开始)dropdownMenu.getSelectedItem():获取当前选中的条目内容(即字符串值)2、在res/values文件夹下的arrays.xml文件中定义下拉菜单的选项。

m0_54198552的博客 491

【网络安全】零基础入门网络安全劝退指北

作为从16年接触网络安全的小白,谈谈零基础如何入门网络安全,有不对的地方,请多多指教。 这些年最后悔的事情莫过于没有把自己学习的东西积累下来形成一个知识体系。 后续我也会陆续的整理网络安全的相关学习资料及文章,与大家一起探讨学习。 如何入门 简单了解网络安全 网络安全就是指的确保网络系统中的数据不被别人破坏,而网安工程师就是涉及程序来维护网络安全。 网安方向有很多职位,比如安全产品工程师,安全分析师,数据恢复工程师,网络架构工程师,安全编程工程师,以及网络集成工程师等。 工作内容主要包括: 安全评测,风

互联网老辛 4583

Android 彩色上下文菜单 Context

Android 进程上下文,就像微信朋友圈长按弹出的复制菜单那样,我们如何把他修改为彩色,这就是我今天要讲解的内容。

Designer 小郑的技术博客 4510

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

实战android菜单项之XML加载菜单与动态菜单项

自定义android应用程序的菜单项首先要知道切入点。经过学习,知道主要是两个Activity类中的回调函数,分别是 onCreateOptionsMenu(Menu menu)和onPrepareOptionsMenu(Menu menu)。其中,onPrepareOptionsMenu(Menu menu)是每次激活菜单项目之前都会被调用的,而 onCreateOptionsMenu(Menu

Kaiwii的专栏 4883

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Android自定义menu菜单布局

一:先写一个自定义的菜单布局 menu_gallery.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Lin

qq_19688207的博客 2918

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android 按钮 菜单,(期末要考啊)Android的menu(菜单)按钮的使用

(期末要考啊)Android的menu(菜单)按钮的使用安卓Android的菜单按钮使用xml的方式创建菜单项在res下的menu目录下新建一个main.xml文件,以menu为根节点,添加一个item就是菜单项android:id="@+id/action_go"android:orderInCategory="1"android:title="前进"/>android:id="@+id/...

weixin_35936375的博客 396

Android实验报告: 自定义菜单

备份下Android实验课实验报告实验五

这里什么都没有哦 995

实战android菜单项之XML加载菜单与动态菜单项[转]

原文地址:http://blog.youkuaiyun.com/kaiwii/article/details/7767225 自定义android应用程序的菜单项首先要知道切入点。经过学习,知道主要是两个Activity类中的回调函数,分别是onCreateOptionsMenu(Menu menu)和onPrepareOptionsMenu(Menu menu)。其中,onPrepareOp...

weixin_30455067的博客 118

自定义Android菜单背景

如何自定义Android菜单背景呢? 默认的情况下Android系统的菜单是白色的,下面的例子可以通过自定义的xml布局实现个性化的menu:Java代码:public class MenuEx extends Activity {private static final String TAG = "android123";@Overridepublic voi

wai2014kuaile的专栏 941
上一篇: android应用 eclipse+ADT 签名、打包 详解
下一篇: Android 中各种XML文件的作用
Jumping_Android
博客等级 码龄15年 36粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值