菜单是任何应用程序必不可少的一项。按下Menu键或者长按某个View就会弹出相应菜单,当然前提是应用程序有实现菜单功能。

Android平台下的菜单有:Options Menu(选项菜单)、Submenu(子菜单)、Context Menu(上下文菜单)。

这次的案例用以前的索尼真机测试,就不贴代码和运行截图,主要贴些理论知识。菜单这块比较简单,代码实例看这位仁兄写的

http://www.cnblogs.com/giuz/archive/2010/10/19/1855235.html

一、选项菜单和子菜单
  Options Menu和Submenu 是一组的,放在一起介绍,一般用于开发普通的选项菜单。

相关回调方法及说明:

涉及到相关类详解:

1、Menu类

  一个Menu对象代表一个菜单,Menu对象中可以添加菜单项MenuItem,也可以添加子菜单SubMenu。常用方法如下:


注意:clear() 方法用于清除已添加的菜单,通过代码运行中的clear()再add()可以用于动态配置菜单。

2、MenuItem类
  一个MenuIten对象代表一个菜单项,通常MenuItem实例通过Menu的add方法获得。常用方法如下:


注意:Android最多支持6个MenuItem,多了以后就摆在More里面。

3、SubMenu类
  一个SubMenu对象代表一个子菜单,可以理解为菜单的菜单,即Menu对象点进去弹出来的就叫子菜单,每个SubMenu实例代表一个子菜单,常用的方法如下

一般用法:
1、在主Activity中覆盖onCreateOptionsMenu(Menu menu)方法,子菜单也在这里添加
2、如果要添加点击事件,则要覆盖onOptionsItemSelected(MenuItem item)方法

二、上下文菜单
  Context Menu类似于电脑上的右键,长按某个View之后弹出来的菜单。也是继承自Menu,不同于选项菜单,
选项菜单服务于Activity,而上下文是注册到某个VIew对象上的。如果一个View对象注册了上下文菜单,用户可以通过长按两秒该View对象调出上下文菜单。

用法同普通菜单,方法名称由Options替换Context

三、用XML配置菜单
  注意到新建项目的MainActivity 都会重写onCreateOptionsMenu方法
里面代码:
getMenuInflater().inflate(R.menu.main, menu);
就是通过XML来设置菜单的。

如下在res/menu/main.xml 就是本来的配置菜单

 <menu xmlns:android="http://schemas.android.com/apk/res/android" >

     <item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/> </menu>

其他同再JAVA代码里的写法。

android学习日记24--Android 菜单开发的更多相关文章

  1. android学习日记03--常用控件Dialog

    常用控件 9.Dialog 我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框 对话框,要创建对话框之前首先要创建Bui ...

  2. android学习日记05--Activity间的跳转Intent实现

    Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...

  3. android学习日记03--常用控件checkbox/radiobutton

    常用控件3.checkbox 复选框,确定是否勾选,点击一下勾选,点击第二下取消,当有一系列备选项时适合用checkbox控件,方便用户提交数据. 贴上例子Activity的java代码 packag ...

  4. android学习日记03--常用控件button/imagebutton

    常用控件 控件是对数据和方法的封装.控件可以有自己的属性和方法.属性是控件数据的简单访问者.方法则是控件的一些简单而可见的功能.所有控件都是继承View类 介绍android原生提供几种常用的控件bu ...

  5. 【Android学习入门】Android studio基本设置

    1.背景设置 依次选择File->Settings-->Appearance & Behaviour->Apprearance,然后勾选 show line number. ...

  6. Android学习笔记之树形菜单的应用...

    PS:终于考完试了,总算是解脱了...可以正式上手项目开发了.... 学习内容: 1.掌握如何使用树形菜单...   对知识点进行一下补充...居然忘记了去学习树形菜单...不过在这里补上... Ex ...

  7. 【Android学习】《Android开发视频教程》第一季笔记

    视频地址: http://study.163.com/course/courseMain.htm?courseId=207001 课时5    Activity基础概念 1.Android开发技术结构 ...

  8. android学习日记0--开发需要掌握的技能

    一.开发android,我们需要哪些技能基础 1.Java基础知识 2.Linux基础知识 3.数据库基础知识 4.网络协议 5.Android基础知识 6.服务器端开发知识 1.Java基础知识 很 ...

  9. android学习日记06--View视图

    一.android 界面开发 1.三个重要的类:View视图.Canvas画布.Paint画笔2.android 界面开发常用三种视图 View            --只能在主线程中更新,没有缓存 ...

随机推荐

  1. 数论/the first wave

    线性筛素数(原来我之前学的不是线性的啊... void getprime(){ rep(i,2,nmax){ if(!vis[i]) prime[++prime[0]]=i; for(int j=1; ...

  2. ajax post提交数据, input type=submit 返回prompt aborted by user

    添加 return false;否则就报prompt aborted by user异常

  3. [VC6]ONMESSAGE()宏编译时出现"sytax error ;"错误时

    自定义消息时编译出错,经排查,在定义消息的头文件里 #define WM_XXX (WM_USER+1000); 最后多加了一个分号引起. 吐血.

  4. [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.5.4

    If $\dim \scrH=3$, then $\dim \otimes^3\scrH =27$, $\dim \wedge^3\scrH =1$ and $\dim \vee^3\scrH =10 ...

  5. 13、Android的多线程与异步任务

    课程目标:学习Android中异步操作的三大方式 重点难点:Handler与线程的关系   Handler消息队列的实现 考核目标: 使用Handler是异步的,它会建立新线程么? no Handle ...

  6. HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事

    作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识,希望能给读者带来一些收获,如有不对之处 ...

  7. 字符流缓冲区BufferedReader之readLine方法的原理

  8. soliworks三维机柜布局(二)创建设备位置

    首先声明对三维机柜布局来说,此步骤不是必须的.(创建solidworks装配体文件时,若是创建了位置就可以选择是否为每个位置创建一个装配体,没有创建位置的话只能选择创建整个工程的装配体文件) 在菜单栏 ...

  9. DOS/Windows下黑客攻防(一)——神秘黑客大曝光

    一.认识神秘的黑客 谈到网络安全,人们不自觉间就会联想到黑客,人们往往会将他们同破坏网络安全.盗取用户账号.偷窃个人私密信息联系起来.其实黑客也有好坏之分,他们并不全是网络上的捣乱分子,其中也有一部分 ...

  10. C++学习笔记(二):基本数据类型

    带符号整数: short至少16位: int至少与short—样长: long至少32位,且至少与int—样长: long long至少64位,且至少与long—样长: 无符号整数: unsigned ...