<!-- 定义基础布局LinearLayout -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical">
<!-- 定义TextView控件 -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="请按键盘物理菜单键,弹出选项菜单"
/>
</LinearLayout>
package com.example.yanlei.yl2;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast; //导入必备的包 public class MainActivity extends AppCompatActivity { //定义Menu中每个菜单选项的Id
private final static int Menu_1 = Menu.FIRST;
private final static int Menu_2 = Menu.FIRST + 1;
private final static int Menu_3 = Menu.FIRST + 2;
private final static int Menu_4 = Menu.FIRST + 3;
private final static int Menu_5 = Menu.FIRST + 4;
private final static int Menu_6 = Menu.FIRST + 5;
private final static int Menu_7 = Menu.FIRST + 6; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // 调用父类的onCreate方法
// 通过setContentView方法设置当前页面的布局文件为activity_main
setContentView(R.layout.activity_main);
} //创建Menu菜单的回调方法
public boolean onCreateOptionsMenu(Menu m) {
//参数m就是拿到的当前Activity菜单对象
//想要给当前页面添加方法的话就add进去即可
//add方法的参数:add(分组id,itemid, 排序, 菜单文字)
m.add(0, Menu_1, 0, "编辑模式");
m.add(0, Menu_2, 0, "修改壁纸");
m.add(0, Menu_3, 0, "全局搜索");
m.add(0, Menu_4, 0, "桌面缩略图");
m.add(0, Menu_5, 0, "桌面效果");
m.add(0, Menu_6, 0, "系统设置");
m.add(0, Menu_7, 0, "用户信息");
return super.onCreateOptionsMenu(m);
} //Menu菜单选项的选项选择的回调事件
public boolean onOptionsItemSelected(MenuItem item) {
//参数为用户选择的菜单选项对象
//根据菜单选项的id来执行相应的功能
switch (item.getItemId()) {
case 1:
Toast.makeText(this, "你点击了编辑模式选项", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(this, "你点击了修改壁纸", Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(this, "你点击了全局搜索", Toast.LENGTH_SHORT).show();
break;
case 4:
Toast.makeText(this, "你点击了桌面缩略图", Toast.LENGTH_SHORT).show();
break;
case 5:
Toast.makeText(this, "你点击了桌面效果", Toast.LENGTH_SHORT).show();
break;
case 6:
Toast.makeText(this, "你点击了系统设置", Toast.LENGTH_SHORT).show();
break;
case 7:
Toast.makeText(this, "你点击了用户信息", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
} // 选项菜单关闭时的回调方法
public void onOptionsMenuClosed(Menu menu) {
Log.e("onOptionsMenuClosed","用户菜单关闭了");
} // 菜单显示之前的回调方法
public boolean onPrepareOptionsMenu(Menu menu) {
Log.e("onPrepareOptionsMenu","用户菜单准备好被显示了");
//方法返回true,就会显示Menu,否则Menu不会被显示
return true;
} }

android 弹出菜单的更多相关文章

  1. 【转】 教你如何创建类似QQ的android弹出菜单

    原文地址:http://www.apkbus.com/android-18034-1-1.html 大家可能看到android的自带的系统菜单比较难看,如图: 2011-12-4 23:13 上传 下 ...

  2. android 单选、多选弹出菜单

    菜单单选窗口: import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInte ...

  3. Android 使用PopupWindow实现弹出菜单

    在本文当中,我将会与大家分享一个封装了PopupWindow实现弹出菜单的类,并说明它的实现与使用. 因对界面的需求,android原生的弹出菜单已不能满足我们的需求,自定义菜单成了我们的唯一选择,在 ...

  4. 【Android】创建Popwindow弹出菜单的两种方式

    方法一的Activity package com.app.test02; import android.app.Activity; import android.os.Bundle; import a ...

  5. Android ListView两种长按弹出菜单方式

    转自:http://www.cnblogs.com/yejiurui/p/3247527.html package com.wyl.download_demo; import java.util.Ar ...

  6. 【转】android创建Popwindow弹出菜单的两种方式

    方法一的Activity package com.app.test02; import android.app.Activity; import android.os.Bundle; import a ...

  7. Android开发技巧——使用PopupWindow实现弹出菜单

    在本文当中,我将会与大家分享一个封装了PopupWindow实现弹出菜单的类,并说明它的实现与使用. 因对界面的需求,android原生的弹出菜单已不能满足我们的需求,自定义菜单成了我们的唯一选择,在 ...

  8. 【Android】5.6 弹出菜单(PopUp Menus)

    分类:C#.Android.VS2015: 创建日期:2016-02-07 一.简介 功能描述:用户单击按钮弹出菜单.当用户选择一个菜单项,会触发MenuItemClick事件并让弹出的菜单消失:如果 ...

  9. Android ListView 长按列表弹出菜单

    Android ListView 长按列表弹出菜单 设置长按菜单 listView.setOnCreateContextMenuListener(new View.OnCreateContextMen ...

随机推荐

  1. Cookies和Session的区别和理解

    Cookies和Session的区别和理解 cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.IETF RFC 2965 HTTP State Man ...

  2. Python、机器学习、计算机视觉、深度学习入门

    1.简明Python教程 2.Python计算机视觉编程 3.机器学习实践 4.吴恩达机器学习 5.李飞飞深度学习与计算机视觉

  3. python学习第一天 计算机基础知识

    目录 什么是编程语言 什么是编程? 为什么要编程? 计算机5大组成分别有什么作用? qq启动的流程? 建议相关学习 课外 什么是编程语言 什么是编程语言? python和中文.英语一样,都是一门语言, ...

  4. Python从文件中读取数据

    一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name is joker, I am 18 years old, H ...

  5. linux-命令学习-1

    1. cat命令 http://blog.csdn.net/jackalfly/article/details/7556848 cat主要有三大功能:1.一次显示整个文件.$ cat   filena ...

  6. cocos2d-x游戏开发(二)之创建第一个项目

    配置好开发环境之后,尝试创建一个cocos项目 (1)打开cocos2d-x安装目录,如D:\DIY\cocos2d-x-3.3 看到目录下有可执行文件 download-deps 以及 setup ...

  7. STM32中如何对printf函数重定向

    通过USART1向计算机的串口调试助手打印数据,或者接收计算机串口调试助手的数据,接下来我们现STM32工程上的printf()函数,方便用于程序开发中调试信息的打印. 方法一:使用MicroLIB库 ...

  8. Exchange 2010 打补丁的顺序

    升级的顺序: 客户端访问服务器 ——> 集线器传输服务器 ——>统一消息服务器(如果有的话)——> 邮箱服务器 ——> 边缘服务器.

  9. 九度oj 题目1172:哈夫曼树

    题目描述: 哈夫曼树,第一行输入一个数n,表示叶结点的个数.需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和. 输入: 输入有 ...

  10. POJ 1056 IMMEDIATE DECODABILITY

    IMMEDIATE DECODABILITY Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9630   Accepted: ...