菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu),今天这讲是OptionsMenu 

  一、概述:这里偷懒,从网上引用的,非原创。引用出处:ForrestWoo

  public boolean onCreateOptionsMenu(Menu menu):使用此方法调用OptionsMenu 。

  public boolean onOptionsItemSelected(MenuItem item):选中菜单项后发生的动作。

  public void onOptionsMenuClosed(Menu menu):菜单关闭后发生的动作。

  public boolean onPrepareOptionsMenu(Menu menu):选项菜单显示之前onPrepareOptionsMenu方法会被调用,你可以用此方法来根据打当时的情况调整菜单。

  public boolean onMenuOpened(int featureId, Menu menu):单打开后发生的动作。

     首先我们先创建一个menu文件,这里用的是android studio,创建方式如下:

      1.

      2.

      3.创建完成后,在muen.xml中写以下代码,分别是创建两个meun控件(C#叫控件,这里就采用这种叫法),代码如下:

              

 <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/add_item"
android:title="添加一个menu"/> <item android:id="@+id/move_item"
android:title="移除一个menu"
/>
</menu>

在Studio中是这样显示的:

      

        4.接下来我们重写OnCrateOptionsMenu()方法:代码如下

 /*@ onCreateOptionsMenu
* */
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true ;
}

*通过getMenuInflater()方法得到对像,再调用inflate()来创建活动菜单,光有菜单是不够的,我们要让它显示出来:添加以下代码:

 

 public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.add_item: //在menu文件中定义的ID
Toast.makeText(this,"弹出一个menu",Toast.LENGTH_SHORT).show();
break;
case R.id.move_item://同上
Toast.makeText(this,"关闭一个menu",Toast.LENGTH_SHORT).show();
default: break;
}
return true;
}

onOptionsItemSelected

重写onOptionsItemSelected方法,通过调用getItemId()方法来判断点击的是哪一个菜单。效果如下:

 

Menu创建菜单的更多相关文章

  1. Android的onCreateOptionsMenu()创建菜单Menu详解(转)

    Android一共有三种形式的菜单:            1.选项菜单(optinosMenu)            2.上下文菜单(ContextMenu)            3.子菜单(s ...

  2. Android的onCreateOptionsMenu()创建菜单Menu详解

    Android一共有三种形式的菜单:            1.选项菜单(optinosMenu)            2.上下文菜单(ContextMenu)            3.子菜单(s ...

  3. 【转】Android的onCreateOptionsMenu()创建菜单Menu详解

    原文网址:http://www.linuxidc.com/Linux/2012-02/55500.htm Android一共有三种形式的菜单:            1.选项菜单(optinosMen ...

  4. Android的onCreateOptionsMenu()创建菜单Menu

    android一共有三种形式的菜单:             1.选项菜单(optinosMenu)             2.上下文菜单(ContextMenu)             3.子菜 ...

  5. ASP.NET实现微信功能(1)(创建菜单,验证,给菜单添加事件)

    LZ实在 不知道怎么起名字了,索性就取了这个名字,开始吧,说实在的,想给自己的平常的学习做一个总结,总是忘了总结.也只能给工作做一个总结了. 我打算用2篇文章来写,第一篇是关于订阅号的,就是这个号,另 ...

  6. Force.com微信开发系列(四)申请Access Token及自定义菜单之创建菜单

    在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒内失效,重复获取将导致上次获取的Token失效,本文将首先介 ...

  7. 使用Select命令创建菜单

    创建文本菜单的一半功夫都花在了创建菜单布局和获取输入的字符上.bash shell提供了一个很容易上手的小工具来自动完成这些工作select命令允许从单个命令行创建菜单,然后在提取输入的答案并自动处理 ...

  8. Linux&shell之高级Shell脚本编程-创建菜单

    写在前面:案例.常用.归类.解释说明.(By Jim) 创建菜单#!/bin/bash# testing the scriptclearechoecho -e "\t\t\tSys Admi ...

  9. Android应用开发基础篇(10)-----Menu(菜单)

    链接地址:http://www.cnblogs.com/lknlfy/archive/2012/02/28/2372101.html 一.概述 Menu,简单来理解就是当你按下手机的“menu”键时所 ...

随机推荐

  1. ASP.NET MVC5 网站开发实践(一) - 项目框架

    前几天算是开题了,关于怎么做自己想了很多,但毕竟没做过项目既不知道这些想法有无必要,也不知道能不能实现,不过邓爷爷说过"摸着石头过河"吧.这段时间看了一些博主的文章收获很大,特别是 ...

  2. EntityFramework之异步、事务及性能优化(九)

    前言 本文开始前我将循序渐进先了解下实现EF中的异步,并将重点主要是放在EF中的事务以及性能优化上,希望通过此文能够帮助到你. 异步 既然是异步我们就得知道我们知道在什么情况下需要使用异步编程,当等待 ...

  3. canvas实现拖动页面时显示窗口视频

    简介 当前主流的视频网站目前有不少新鲜好玩的功能,最明显的莫过于小视频的显示--当视频不在当前视口范围 时,会在右下角用一个小窗口来显示当前的视频,而且可以拖拽. 今晚心血来潮,起了动手试试的念头.我 ...

  4. ZOJ Problem Set - 1001 A + B Problem

    ZOJ ACM题集,编译环境VC6.0 #include <stdio.h> int main() { int a,b; while(scanf("%d%d",& ...

  5. 探秘Tomcat——启动篇

    tomcat作为一款web服务器本身很复杂,代码量也很大,但是模块化很强,最核心的模块还是连接器Connector和容器Container.具体请看下图: 从图中可以看出 a. 高亮的两块是Conne ...

  6. iOS_UIImage_毛玻璃效果

    效果图: 核心方法: // 出入UIImage 和 blur模糊成度 (0-1) - (UIImage *)blurryImage:(UIImage *)image withBlurLevel:(CG ...

  7. Android监听系统短信数据库变化-提取短信内容

    由于监听系统短信广播受到权限的限制,所以很多手机可能使用这种方式没法监听广播,从而没办法获取到系统短信,所以又重新开辟一条路. Android监听系统短信数据库内容变化使用场景: 1.监听短信数据库的 ...

  8. 【Debug】Web开发中,Tomcat正常启动,访问欢迎页404,怎么办?

    访问页面出现404是一个会经常遇到的问题.每次开发Web项目时总要掉这个坑里几次,而且还不长记性.今天来总结一下,开发时遇到这个问题的解决思路. 1. 查看访问地址是否正确,有无拼写错误. 越是低级的 ...

  9. TF-IDF提取行业关键词

    1. TF-IDF简介 TF-IDF(Term Frequency/Inverse Document Frequency)是信息检索领域非常重要的搜索词重要性度量:用以衡量一个关键词\(w\)对于查询 ...

  10. 使用EDMX查询(EF基础系列15)

    EF支持三种类型的查询: 1.LINQ to Entities 2.Entity SQL 3.Native SQL 1.LINQ to Entities LINQ Method syntax: usi ...