一、 菜单资源通常放在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)资源相关推荐

  1. Android菜单—Menu

    菜单是常用的用户界面元素,在Android系统里提供了3种类型的菜单. (1)选项菜单(options menu):按设备上Menu 键显示的菜单. (2)上下文菜单(context menu):长按 ...

  2. Android菜单详解——理解android中的Menu

    前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...

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

    (期末要考啊)Android的menu(菜单)按钮的使用 安卓 Android的菜单按钮 使用xml的方式创建菜单项在res下的menu目录下新建一个main.xml文件,以menu为根节点,添加一个 ...

  4. Android开发——菜单(Menu)-——上下文菜单(ContextMenu)、 弹出菜单(PopupMenu)

    上下文菜单(ContextMenu) 长按某个view不放,就会在屏幕中间弹出ContextMenu. 一个Activity中间只可能有一个OptionMenu,但一个Activity中间有多个Vie ...

  5. android菜单(menu)用法

    Android手机专门用一个按键"menu"来显示菜单. 要实现菜单功能,首先要通过方法onCreateOptionMenu来创建菜单,创建方法有两种:一种是直接导入有menu的x ...

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

    一. OptionMenu 1.首先在项目目录下的res资源目录下,新建一个资源文件夹menu (1)res目录的位置如下 (2)新建名称为menu的包 2.然后在menu的包下新建Menu Reso ...

  7. 【Android】Menu菜单详解——实战微信菜单

    简单介绍一下自己,大三学生党一枚!主攻Android开发,对于Web和后端均有了解. 个人语录:取乎其上,得乎其中,取乎其中,得乎其下,以顶级态度写好一篇的博客. 菜单在Android中可谓必不可少, ...

  8. android用户界面之菜单(Menu)教程实例汇总

    一.Menu的基本介绍 1.从头学Android之Menu选项菜单  http://www.apkbus.com/android-13930-1-1.html  2.Android 界面之Menu菜单 ...

  9. 系出名门Android(2) - 布局(Layout)和菜单(Menu)

    2019独角兽企业重金招聘Python工程师标准>>> 系出名门Android(2) - 布局(Layout)和菜单(Menu) 作者:webabcd 介绍 在 Android 中各 ...

  10. android 自定义menu背景,Android编程实现自定义系统菜单背景的方法

    本文实例讲述了Android编程实现自定义系统菜单背景的方法.分享给大家供大家参考,具体如下: 不多说,上图,见代码. package lab.sodino.menutest; import andr ...

最新文章

  1. E667:Fsync failed(how to solve)
  2. UVA122 树的层次遍历 Trees on the level(两种方法详解)
  3. Boost:post process后期处理的测试程序
  4. java关于throw Exception的一个小秘密
  5. centos nodejs yarn安装及升级
  6. Python--详解Python中re.sub
  7. 遵循PSR-4的自动加载
  8. P3161 [CQOI2012]模拟工厂
  9. DB9,DB25,USB-A,USB-B,USB-mini,USB-typeC 接口定义
  10. php数组用递归函数求和,如何用php递归函进行数字累加操作?php递归函数累加求和...
  11. RapidMiner Studio 设计视图
  12. Selenium - What will happen behind the scenes when running client code
  13. halcon小例:ORC识别
  14. 火柴棍能组成的最大数字
  15. 二手贴片机多少钱一台,二手贴片机转让
  16. CSS3特效-自定义checkbox样式
  17. 报错:error变warring的设置
  18. 钱多多软件制作第七天
  19. 六月:手动学数据分析(task02)
  20. 管家婆服务器备份在哪个文件夹,管家婆财务软件备份以及恢复方法

热门文章

  1. Science背靠背: NLR受体介导植物抗病反应新机制
  2. 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍
  3. R语言使用DALEX包的model_profile函数对caret包生成的多个算法模型的离散变量进行分析、使用偏依赖图(Partial Dependence Plots)解释某个离散特征和目标y的关系
  4. R语言使用pwr包的pwr.f2.test函数对线性回归模型进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
  5. python使用imbalanced-learn的InstanceHardnessThreshold方法进行下采样处理数据不平衡问题
  6. 朴素贝叶斯(NBM,Naive Bayesian Model)为什么朴素又有哪些形式?
  7. java性能保障技术_狙击P7!阿里大佬亲授“Java性能调优技术宝典”,太完整了!...
  8. 数据结构与算法:选择排序
  9. Android Studio下的目录结构
  10. Oracle Database 11g的使用