Android应用中使用Popupmenu

最终效果:

页面布局:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="fill_parent"
 4     android:layout_height="fill_parent"
 5     android:background="#FFFFFF"
 6     android:orientation="vertical" >
 7
 8     <RelativeLayout
 9         android:layout_width="fill_parent"
10         android:layout_height="45dp"
11         android:background="#303538" >
12         <Button
13             android:id="@+id/button_showPopup"
14             android:layout_width="wrap_content"
15             android:layout_height="fill_parent"
16             android:layout_alignParentRight="true"
17             android:background="#303538"
18             android:text="┇"
19             android:textColor="#FFFFFF"
20             android:textSize="20sp" >
21         </Button>
22     </RelativeLayout>
23
24 </LinearLayout>

Popupmenu布局(文件在menu目录下):

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
 3
 4     <item
 5         android:id="@+id/about"
 6         android:orderInCategory="100"
 7         android:showAsAction="never"
 8         android:title="关于">
 9     </item>
10     <item
11         android:id="@+id/exit"
12         android:orderInCategory="100"
13         android:showAsAction="never"
14         android:title="退出">
15     </item>
16
17 </menu>

后台代码:

 1 package com.wangzhen.popup;
 2
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.view.MenuItem;
 6 import android.view.View;
 7 import android.view.View.OnClickListener;
 8 import android.view.Window;
 9 import android.widget.Button;
10 import android.widget.PopupMenu;
11 import android.widget.Toast;
12
13 public class Main extends Activity implements OnClickListener,
14         android.widget.PopupMenu.OnMenuItemClickListener {
15     /** Called when the activity is first created. */
16     private Button button_showPopup;
17
18     @Override
19     public void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         requestWindowFeature(Window.FEATURE_NO_TITLE);
22         setContentView(R.layout.main);
23         initViews();
24     }
25
26     // 初始化控件
27     private void initViews() {
28         // TODO Auto-generated method stub
29         button_showPopup = (Button) findViewById(R.id.button_showPopup);
30         button_showPopup.setOnClickListener(this);
31     }
32
33     public void onClick(View arg0) {
34         // TODO Auto-generated method stub
35         switch (arg0.getId()) {
36         case R.id.button_showPopup:
37             PopupMenu pop = new PopupMenu(this, arg0);
38             pop.getMenuInflater().inflate(R.menu.menu, pop.getMenu());
39             pop.show();
40             pop.setOnMenuItemClickListener(this);
41             break;
42         }
43     }
44
45     public boolean onMenuItemClick(MenuItem arg0) {
46         // TODO Auto-generated method stub
47         switch (arg0.getItemId()) {
48         case R.id.about:
49             Toast.makeText(this, "关于", 1000).show();
50             break;
51         case R.id.exit:
52             finish();
53             break;
54         }
55         return false;
56     }
57 }

Android应用中使用Popupmenu,布布扣,bubuko.com

时间: 2024-12-20 11:55:32

Android应用中使用Popupmenu的相关文章

Android:自己定义PopupMenu的样式(显示图标/设置RadioButton图标)

PopupMenu是Android中一个十分轻量级的组件.与PopupWindow相比,PopupMenu的可自己定义的能力较小,但使用更加方便. 先上效果图: 本例要实现的功能例如以下: 1.强制显示菜单项的图标. 默认状态下.PopupMenu的图标是不显示的.而且Android没有为我们开放不论什么API去设置它的显示状态.为了显示菜单项的图标,能够自己重写PopupMenu并改动相关属性,也能够直接使用反射: try { Field field = popupMenu.getClass(

在Android程序中使用已有的SQLite数据库

已经将这篇文章迁移至 Code问答,你也能够到这里查看这篇文章,请多多关注我的新技术博客CodeWenDa.com 在中文搜索中,没有找到一篇比較好的关于怎样在Android应用中使用自己事先创建好的数据库的文章,于是在谷歌上找到这篇英文文章,依照它的步骤,測试成功.决定把这篇文章大致的翻译一下,想看原文的能够点击这里:http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ .

Android.mk中的经常使用语法

Android.mk编译文件是用来向Android NDK描写叙述你的C,C++源码文件的, 今天查了一些经常使用的的语法. 一 概述: 一个Android.mk文件用来向编译系统描写叙述你的源码. 详细来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或很多其它次的build系统. 你能够在每个Android.mk文件里定义一个或多个模块, 你也能够在几个模块中使用同一个源码文件. 二 语法 1 必须定义内容 先看必须定义的内容: LOCAL_PATH := $(call

在Android studio中如何把项目放到远程git或从远程git得到项目:

主要记录了在Android studio 中如何把项目放到远程git或从远程得到项目: 因为它已经为我们提供了git插件,所有我们部署一下就可以直接使用了.方法如下: 1.准备:先下载window上的git(在不同的系统下载不同的git),然后安装. 2.在Android studio 里点击:File->Settings(如图1),然后进入Version Control->Git;(如图二)然后点击Test(出现图三表示成功). 图1 图二 图三 3.初始化git项目(git init),操

Android Studio 中 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task &#39;:compileDebugAidl&#39;.的问题解答

Android Studio 中 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileDebugAidl'.的问题解答 完整的问题提示 Gradle: FAILURE:Build failed with an exception.*What went wrong:Execution failed for task ':compileDebugAidl'.>No

android开发中碰到的三个小问题

Android开发中注意到的几个问题 1.  关于actionbar 初始化配置actionbar,getactionbar经常为null,原因是因为在源码或者布局文件中设置了全屏显示的缘故,不设置全屏显示就不会有问题. 2.  关于textview Textview默认是没有焦点的,因此不可能有点击事件,也无法直接实现背景的selector.通过设置android:clickable = true;就可以了,这一点与Button有很大的不同 3.  关于sourcinsight中的php代码.

Android系统中添加一个产品----图文详解

本文本着开源的精神介绍如何向一个Android系统中添加一个产品的整个过程,按照以下过程笔者有理由相信每个将要从事本行业的人都可以完成,其实添加一个产品并不难,难的是对其相关硬件的修改,好了废话不多说. 首先我们要创建一个属于自己产品的目录,这里以WY_device为例,以WY作为产品的名字. 首先从已经存在的产品中拷贝一个以产品的名字为名的.mk文件,修改为自己的.mk文件,在这里为WY.mk 对其进行如下的修改: 然后添加AndroidProducts.mk  这是添加产品的配置文件名路径,

Android应用中使用百度地图API定位自己的位置(二)

官方文档:http://developer.baidu.com/map/sdkandev-6.htm#.E7.AE.80.E4.BB.8B3 百度地图SDK为开发者们提供了如下类型的地图覆盖物: 我的位置图层(MyLocationOverlay):用于显示用户当前位置的图层(支持自定义位置图标): Poi搜索结果图层(PoiOverlay):用于显示兴趣点搜索结果的图层: 路线图层(RouteOverlay):公交.步行和驾车线路图层,将公交.步行和驾车出行方案的路线及关键点显示在地图上(起.终

android开发中监听器的三种实现方法(OnClickListener)

Android开发中监听器的实现有三种方法,对于初学者来说,能够很好地理解这三种方法,将能更好地增进自己对android中监听器的理解. 一.什么是监听器. 监听器是一个存在于View类下的接口,一般以On******Llistener命名,实现该接口需要复写相应的on****(View v)方法(如onClick(View v)). 二.监听器的三种实现方法 (以OnClickListener为例) 方法一:在Activity中定义一个内部类继承监听器接口(这里是OnClickListener