第二章实例:Android窗口菜单显示



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窗口菜单显示的更多相关文章
- [Learn Android Studio 汉化教程]第二章:Android Studio概述(一)
[Learn Android Studio ]第二章:Android Studio概述(一) Android Studio是一个视窗化的开发环境.为了充分利用有限的屏幕空间,不让你束手束脚,Andro ...
- Android群英传笔记——第二章:Android开发工具新接触
Android群英传笔记--第二章:Android开发工具新接触 其实这一章并没什么可讲的,前面的安装Android studio的我们可以直接跳过,如果有兴趣的,可以去看看Google主推-Andr ...
- Android 系统移植与驱动开发--第二章搭建Android环境核心步骤及心得
第二章 搭建Android 开发环境 虽然在这一章中讲的是Android底层开发环境,但是相应伴随的还有Android NDK程序来测试Linux驱动,HAL程序库.底层开发不仅需要交叉编译环境,还要 ...
- 通过游戏学python 3.6 第一季 第二章 实例项目 猜数字游戏--核心代码--猜测次数 可复制直接使用 娱乐 可封装 函数
猜数字游戏--核心代码--猜测次数 #猜数字--核心代码--猜测次数 number=33 amount=3 count=0 while count<=amount: conversion ...
- 第二章实例:ActionBar结合Fragment显示
package tab.test; import com.example.actionbar_tab.R; import android.app.ActionBar; import android.a ...
- 第二章:Android Studio概述(一)[学习Android Studio汉化教程]
Android Studio是一个视窗化的开发环境.为了充分利用有限的屏幕空间,不让你束手束脚,Android Studio 在特定的时间仅仅显示一小部分可用窗口. 除了一些上下文敏感的窗口和上下文 ...
- 第二章:Android Studio概述(二)[学习Android Studio汉化教程]
The Main Menu Bar 主菜单栏 主菜单栏位于Android Studio的最上面,你几乎可以利用主菜单和其子菜单来执行任何操作.不像Android Studio中其他的一些菜单,主菜单 ...
- 我的Android第二章:Android目录结构
嗨!各位,小编又和大家分享知识啦,在昨天的博客笔记中小编给大家讲解了如何去配置Android工具以及SDK中的一些配置,那在今天的学习小编会带给大家哪些Android知识呢?首先我们看一下今天的学习目 ...
- 第二章 搭建Android开发环境
这一章为我们讲解了如何搭建Android开发环境. 首先要了解的是Android底层开发需要哪些工具:搭建android应用程序开发环境.android NDK开发环境和交叉编译环境,前两个用来测试L ...
随机推荐
- EffectiveC#11--选择foreach循环
1.C#的foreach语句可以为你的任何集合产生最好的迭代代码 不推荐如下写法(?原因未明白 作者意思是阻碍jit边界检测) int len = foo.Length; for ( int inde ...
- Javascript进阶篇——浏览器对象—Location、Navigator、userAgent、screen对象
Location对象location用于获取或设置窗体的URL,并且可以用于解析URL.语法: location.[属性|方法] location对象属性图示: location 对象属性: loca ...
- C#遍历数组
Eg: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...
- SQL语句 打印等腰三角形,菱形
) BEGIN 5 SET @S='' 8 BEGIN -@I) 10 BEGIN SET @S=@S+' ' END ELSE 14 BEGIN SET @S=@S+'**' 16 END END ...
- select2使用详解
官网: https://select2.github.io/examples.html 引用: <link href="~/Scripts/select2/select2.css&qu ...
- css 背景图片拉伸[转]
http://www.jeasyuicn.com/css-background-image-stretching.html background-image:url(bg.png); -moz-bac ...
- atom写文档技巧
1. 段落和标题大纲 标题大纲(类似于HTML的H1, H2, …) 简单得很,一级标题用# 标题, 二级标题用## 标题,三级标题用### 标题,以此类推. 段落(类似HTML的<p>) ...
- php 程序员的历程
今天一朋友该找工作了. 问了我好多 我整理了下 希望有些帮助 以下内容纯属个人感觉如果有不恰当的地方请忽略.... 我做的是项目的包工 就是把销售拿下的项目整合后给我们实现功能. --------- ...
- Effective Java2读书笔记-创建和销毁对象(四)
第7条:避免使用终结方法 这一条讲的简直是不知所云.先简单记下来其中说出的几条: ①显式终止方法的典型例子有InputStream.OutputStream和java.sql.Connection上的 ...
- 【转】如何定制android源码的编译选项 & 后期安装? ---- 不错
原文网址:http://blog.sina.com.cn/s/blog_3e3fcadd0100z3o9.html Android编译过程比较长,配置起来也很麻烦.现仅就工作遇到的问题做个总结.所用硬 ...