android菜单(menu)资源
一、 菜单资源通常放在res/menu目录下,菜单资源是的根元素通常是<menu></menu>标记,在该标记下可以包含以下两个元素。
1.<item></item>标记:用于定义菜单项。
2.<group></group>标记:用于将多个<item></item>标记定义的菜单包装成一个菜单组。
在menu_main.xml的具体代码如下:
<menu xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"><item android:id="@+id/item1" android:title="更换背景" android:alphabeticShortcut="g"></item><item android:id="@+id/item2" android:title="编辑组件" android:alphabeticShortcut="e"></item><item android:id="@+id/item3" android:title="恢复默认" android:alphabeticShortcut="r"></item><group android:id="@+id/setting"><item android:id="@+id/sound" android:title="使用背景"></item><item android:id="@+id/video" android:title="背景音乐"></item></group>
</menu>
二、使用菜单资源:
1.选项菜单(Option Menu)
当用户单击菜单按钮时,弹出的菜单就是选项菜单。使用菜单资源创建选项菜单的具体步骤如下。
(1)重写Activity中的onCreateOptionMenu()方法。在该方法中,首先创建衣蛾用于解析菜单资源文件的MenuInflater对象,然后调用该对象的inflate()方法解析一个菜单资源文件,并把解析后的菜单保存在menu中,关键代码如下:
public boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_main, menu);return true;}
(2)重写onOptionsItemSelected(),用于当菜单项被选中的做出相应的处理。
@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();//noinspection SimplifiableIfStatementToast.makeText(MainActivity.this,item.getTitle(),Toast.LENGTH_SHORT).show();return super.onOptionsItemSelected(item);}
2.上下文菜单(Content Menu)
当用户长时间按键不放是,弹出的菜单就是上下文菜单。步骤:
(1)在Activity的onCreate()方法注册上下文菜单
private TextView testMenu=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);testMenu= (TextView) findViewById(R.id.testMenu);registerForContextMenu(testMenu); //为文本框注册上下文菜单}
(2)重写Activity中的onCreateContextMenu()方法。在该方法中,首先创建一个用于解析菜单资源文件的MenuInflater,然后调用该对象的inflate()方法解析一个菜单资源文件,并把解析出来的惨淡保存在menu中,最后为菜单设置图标和标题。关键代码如下:
@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, v, menuInfo);MenuInflater inflater=new MenuInflater(this); //实例化一个MenuInflater对象inflater.inflate(R.menu.menu_main,menu); //解析菜单文件menu.setHeaderIcon(R.drawable.ic_launcher); //为菜单头设置图标menu.setHeaderTitle("请选择"); //为菜单头设置图标}
(3)重写onCintextItemSelected()方法,用于当菜单项被选择时做出相应的处理。
@Overridepublic boolean onContextItemSelected(MenuItem item) {Toast.makeText(MainActivity.this,item.getTitle(),Toast.LENGTH_SHORT).show();return super.onContextItemSelected(item);}
android菜单(menu)资源相关推荐
- Android菜单—Menu
菜单是常用的用户界面元素,在Android系统里提供了3种类型的菜单. (1)选项菜单(options menu):按设备上Menu 键显示的菜单. (2)上下文菜单(context menu):长按 ...
- Android菜单详解——理解android中的Menu
前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...
- android 按钮 菜单,(期末要考啊)Android的menu(菜单)按钮的使用
(期末要考啊)Android的menu(菜单)按钮的使用 安卓 Android的菜单按钮 使用xml的方式创建菜单项在res下的menu目录下新建一个main.xml文件,以menu为根节点,添加一个 ...
- Android开发——菜单(Menu)-——上下文菜单(ContextMenu)、 弹出菜单(PopupMenu)
上下文菜单(ContextMenu) 长按某个view不放,就会在屏幕中间弹出ContextMenu. 一个Activity中间只可能有一个OptionMenu,但一个Activity中间有多个Vie ...
- android菜单(menu)用法
Android手机专门用一个按键"menu"来显示菜单. 要实现菜单功能,首先要通过方法onCreateOptionMenu来创建菜单,创建方法有两种:一种是直接导入有menu的x ...
- Android三种常用菜单Menu(OptionMenu,ContextMenu,PopupMenu)的详细讲解使用(全网最详细)
一. OptionMenu 1.首先在项目目录下的res资源目录下,新建一个资源文件夹menu (1)res目录的位置如下 (2)新建名称为menu的包 2.然后在menu的包下新建Menu Reso ...
- 【Android】Menu菜单详解——实战微信菜单
简单介绍一下自己,大三学生党一枚!主攻Android开发,对于Web和后端均有了解. 个人语录:取乎其上,得乎其中,取乎其中,得乎其下,以顶级态度写好一篇的博客. 菜单在Android中可谓必不可少, ...
- android用户界面之菜单(Menu)教程实例汇总
一.Menu的基本介绍 1.从头学Android之Menu选项菜单 http://www.apkbus.com/android-13930-1-1.html 2.Android 界面之Menu菜单 ...
- 系出名门Android(2) - 布局(Layout)和菜单(Menu)
2019独角兽企业重金招聘Python工程师标准>>> 系出名门Android(2) - 布局(Layout)和菜单(Menu) 作者:webabcd 介绍 在 Android 中各 ...
- android 自定义menu背景,Android编程实现自定义系统菜单背景的方法
本文实例讲述了Android编程实现自定义系统菜单背景的方法.分享给大家供大家参考,具体如下: 不多说,上图,见代码. package lab.sodino.menutest; import andr ...
最新文章
- E667:Fsync failed(how to solve)
- UVA122 树的层次遍历 Trees on the level(两种方法详解)
- Boost:post process后期处理的测试程序
- java关于throw Exception的一个小秘密
- centos nodejs yarn安装及升级
- Python--详解Python中re.sub
- 遵循PSR-4的自动加载
- P3161 [CQOI2012]模拟工厂
- DB9,DB25,USB-A,USB-B,USB-mini,USB-typeC 接口定义
- php数组用递归函数求和,如何用php递归函进行数字累加操作?php递归函数累加求和...
- RapidMiner Studio 设计视图
- Selenium - What will happen behind the scenes when running client code
- halcon小例:ORC识别
- 火柴棍能组成的最大数字
- 二手贴片机多少钱一台,二手贴片机转让
- CSS3特效-自定义checkbox样式
- 报错:error变warring的设置
- 钱多多软件制作第七天
- 六月:手动学数据分析(task02)
- 管家婆服务器备份在哪个文件夹,管家婆财务软件备份以及恢复方法
热门文章
- Science背靠背: NLR受体介导植物抗病反应新机制
- 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍
- R语言使用DALEX包的model_profile函数对caret包生成的多个算法模型的离散变量进行分析、使用偏依赖图(Partial Dependence Plots)解释某个离散特征和目标y的关系
- R语言使用pwr包的pwr.f2.test函数对线性回归模型进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
- python使用imbalanced-learn的InstanceHardnessThreshold方法进行下采样处理数据不平衡问题
- 朴素贝叶斯(NBM,Naive Bayesian Model)为什么朴素又有哪些形式?
- java性能保障技术_狙击P7!阿里大佬亲授“Java性能调优技术宝典”,太完整了!...
- 数据结构与算法:选择排序
- Android Studio下的目录结构
- Oracle Database 11g的使用