package test.main.cls;

import com.example.popupwindow.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.PopupMenu;
import android.widget.PopupMenu.OnMenuItemClickListener;
import android.widget.PopupWindow;
import android.widget.Toast; public class PopupWindows extends Activity { @Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.setHeaderIcon(R.drawable.ic_launcher);
SubMenu submenu = menu.addSubMenu("系统修复");//该方法返回submenu接口对象,想必menu实现了submenu接口
submenu.add(0, 0, 0, "自动修复").setIcon(R.drawable.ic_launcher);
submenu.add(0, 1, 0, "修复外存").setIcon(R.drawable.ic_launcher);
submenu.add(0, 2, 0, "修复硬件").setIcon(R.drawable.ic_launcher);
//------------------------------------------
menu.setHeaderIcon(R.drawable.ic_launcher);
SubMenu submenus = menu.addSubMenu("全局修复");//该方法返回submenu接口对象,想必menu实现了submenu接口
submenus.add(0, 0, 0, "完全修复").setIcon(R.drawable.ic_launcher);
submenus.add(0, 1, 0, "无损修复").setIcon(R.drawable.ic_launcher);
submenus.add(0, 2, 0, "完美修复").setIcon(R.drawable.ic_launcher);
super.onCreateContextMenu(menu, v, menuInfo);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu submenu = menu.addSubMenu("毁灭系统");//该方法返回submenu接口对象,想必menu实现了submenu接口
submenu.add(0, 0, 0, "全盘毁灭").setIcon(R.drawable.ic_launcher);
submenu.add(0, 1, 0, "毁灭外存").setIcon(R.drawable.ic_launcher);
submenu.add(0, 2, 0, "毁灭硬件").setIcon(R.drawable.ic_launcher);
//submenu.add(0, 4, 0, "毁灭电池").setIcon(R.drawable.ic_launcher).setIntent(/*Intent*/);
//submenu.add(0, 3, 0, "毁灭屏幕").setShortcut('F', '5');
//submenu.setGroupCheckable(0, true, true);按钮组是否可勾选
//-----------------------------------------
SubMenu submenu1 = menu.addSubMenu("发送诈骗信息");
submenu1.add(0, 0, 0, "发送给全部好友");
submenu1.add(0, 1, 0, "发送给最近联系");
submenu1.add(0, 2, 0, "随机发送");
submenu1.add(0, 3, 0, "发送国外"); return super.onCreateOptionsMenu(menu);
} @Override
public void onOptionsMenuClosed(Menu menu) {
// TODO Auto-generated method stub
super.onOptionsMenuClosed(menu);
} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View contentv = this.getLayoutInflater().inflate(R.layout.main_layout, null);
this.setContentView(contentv);
//-------------------------------------------
Button btn = (Button)findViewById(R.id.clickssss);
final PopupMenu pMenu = new PopupMenu(PopupWindows.this,btn);
this.getMenuInflater().inflate(R.menu.popup_menu, pMenu.getMenu());
btn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
pMenu.show();
}
});
pMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(PopupWindows.this, item.getTitle(), Toast.LENGTH_LONG).show();
return true;
}
});
///------------------------------------------
//注意::findViewById需要setContentView后可用
this.registerForContextMenu(contentv);//给一个View绑定上下文菜单 }
}
xml:
//main_layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/clickssss"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="弹出"/> </LinearLayout>
xml:
//menu/popup_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<group android:checkableBehavior="none">
<item android:id="@+id/menu_1"
android:title="这是一个弹出菜单"/>
<item android:id="@+id/menu_2"
android:title="其用法也非常简单"/>
<item android:id="@+id/menu_3"
android:title="控件使用不是重点"/>
<item android:id="@+id/menu_4"
android:title="重点是要理解代码"/> </group> </menu>

第二章实例:Android窗口菜单显示的更多相关文章

  1. [Learn Android Studio 汉化教程]第二章:Android Studio概述(一)

    [Learn Android Studio ]第二章:Android Studio概述(一) Android Studio是一个视窗化的开发环境.为了充分利用有限的屏幕空间,不让你束手束脚,Andro ...

  2. Android群英传笔记——第二章:Android开发工具新接触

    Android群英传笔记--第二章:Android开发工具新接触 其实这一章并没什么可讲的,前面的安装Android studio的我们可以直接跳过,如果有兴趣的,可以去看看Google主推-Andr ...

  3. Android 系统移植与驱动开发--第二章搭建Android环境核心步骤及心得

    第二章 搭建Android 开发环境 虽然在这一章中讲的是Android底层开发环境,但是相应伴随的还有Android NDK程序来测试Linux驱动,HAL程序库.底层开发不仅需要交叉编译环境,还要 ...

  4. 通过游戏学python 3.6 第一季 第二章 实例项目 猜数字游戏--核心代码--猜测次数 可复制直接使用 娱乐 可封装 函数

      猜数字游戏--核心代码--猜测次数   #猜数字--核心代码--猜测次数 number=33 amount=3 count=0 while count<=amount: conversion ...

  5. 第二章实例:ActionBar结合Fragment显示

    package tab.test; import com.example.actionbar_tab.R; import android.app.ActionBar; import android.a ...

  6. 第二章:Android Studio概述(一)[学习Android Studio汉化教程]

     Android Studio是一个视窗化的开发环境.为了充分利用有限的屏幕空间,不让你束手束脚,Android Studio 在特定的时间仅仅显示一小部分可用窗口. 除了一些上下文敏感的窗口和上下文 ...

  7. 第二章:Android Studio概述(二)[学习Android Studio汉化教程]

    The Main Menu Bar 主菜单栏  主菜单栏位于Android Studio的最上面,你几乎可以利用主菜单和其子菜单来执行任何操作.不像Android Studio中其他的一些菜单,主菜单 ...

  8. 我的Android第二章:Android目录结构

    嗨!各位,小编又和大家分享知识啦,在昨天的博客笔记中小编给大家讲解了如何去配置Android工具以及SDK中的一些配置,那在今天的学习小编会带给大家哪些Android知识呢?首先我们看一下今天的学习目 ...

  9. 第二章 搭建Android开发环境

    这一章为我们讲解了如何搭建Android开发环境. 首先要了解的是Android底层开发需要哪些工具:搭建android应用程序开发环境.android NDK开发环境和交叉编译环境,前两个用来测试L ...

随机推荐

  1. android——屏幕适配大全(转载)

    http://my.oschina.net/u/2008084/blog/496161 一.适配可行性 早在Android设计之初就考虑到了这一点,为了让app适应标准or山寨屏幕,google已经有 ...

  2. javascript无缝全屏轮播

    虽然平时能利用插件来实现,但是总是觉得,如果连个无缝轮播都写不出来,还玩个毛线: 其实现在还真的是玩毛线,因为代码都是别人的,不过嘛,很快就变成是我的啦! 代码还没封装成插件,其实我也还没弄清楚. 下 ...

  3. 1230.2——iOS准备(阅读开发者文档时的笔记)

    1.程序启动的过程    .在桌面找到相应的应用的图标 点击图标    .main函数 UIApplication类Every app has exactly one instance of UIAp ...

  4. 真机调试以及“Could not find Developer Disk Image”问题解决方案

    真机测试步骤 1.运行Xcode,Xcode打开后,点左上角菜单'Xcode',点'Preferences'. 2.在打开的窗口中,点'Accounts',切换到账号页,然后点下面的'+'号,在弹出菜 ...

  5. poj2243 bfs

    O - 上一个题的加强版 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:65536KB     6 ...

  6. Linux 入门命令

    本文系转载:http://www.cnblogs.com/wwj9413/archive/2012/03/15/2638638.html#2929949 1.Linux进入与退出系统 进入Linux系 ...

  7. (原)ubuntu14手动安装matplotlib1.5

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5681059.html 参考网址: http://matplotlib.org/users/instal ...

  8. SpringMvc项目 FastJson的数据中有$ref解决办法

    这是FastJson返回的数据,经过在线json格式转换工具转换的数据 阴影部分套用上面的dept(部门)信息,使用easyui只能获取第一行,凡是引用的都无法获取 经各种搜索: 推荐网址:http: ...

  9. 在shell脚本中调用sqlplus

    #!/bin/bash sqlplus dc_file_data_js/dc_file_data_js << EOF1 set linesize 500; set pagesize 100 ...

  10. HDU ACM 题目分类

    模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...