文档章节

PopupWindow的使用

HWJ-杰杰
 HWJ-杰杰
发布于 2014/04/29 21:24
字数 600
阅读 172
收藏 1

源码下载:

源码下载

运行效果:

按了返回后:

java代码:

package com.example.cest;

import android.app.Activity;
import android.graphics.drawable.PaintDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
	PopupWindow popupWindow,popupWindoweExit;
	Button bu_shi,bu_fou;
	TextView view1;
	TextView view2;
	Button button;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button=(Button) findViewById(R.id.bu);
		button.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				popinit();
			}
		});
	}
	protected void popinit() {
		// TODO Auto-generated method stub
		LayoutInflater inflater = LayoutInflater.from(this);
		View pop_view = inflater.inflate(R.layout.bujv, null);
		view1=(TextView) pop_view.findViewById(R.id.tv1);
		view2=(TextView) pop_view.findViewById(R.id.tv2);
		                                      //设置下拉按钮父布局的高和宽
		popupWindow = new PopupWindow(pop_view,ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
		popupWindow.setFocusable(true);//没这行按钮下拉了,按手机返回会直接退出
//		popupWindow.setOutsideTouchable(true);
		popupWindow.setBackgroundDrawable(new PaintDrawable());//没这行按钮下拉了不会消失
		popupWindow.showAtLocation(pop_view, Gravity.BOTTOM, 0, 0);//PopupWindow显示的位置
		view1.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Toast.makeText(MainActivity.this, "这是注册",Toast.LENGTH_LONG).show();
			}
		});
		view2.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Toast.makeText(MainActivity.this, "这是登录",Toast.LENGTH_LONG).show();
			}
		});
	}
	/*按返回弹出是否退出画面
	 * 
	 * */
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub

		if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
			popExit();
		}
		return false;
	}
	/*用PopupWindow做的退出
	 * */
	private void popExit() {
		// TODO Auto-generated method stub
		LayoutInflater inflater = LayoutInflater.from(this);
		View pop_view = inflater.inflate(R.layout.exit, null);
		bu_shi=(Button) pop_view.findViewById(R.id.bu_exit_shi);
		bu_fou=(Button) pop_view.findViewById(R.id.bu_exit_fou);
		popupWindoweExit = new PopupWindow(pop_view,200,ViewGroup.LayoutParams.WRAP_CONTENT);
		popupWindoweExit.setFocusable(true);
		popupWindoweExit.setOutsideTouchable(true);
//		popupWindow.setBackgroundDrawable(new PaintDrawable());
		popupWindoweExit.showAtLocation(pop_view, Gravity.BOTTOM|Gravity.CENTER_VERTICAL, 0, 150);
		bu_shi.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				MainActivity.this.finish();
			}
		});
		bu_fou.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				popupWindoweExit.dismiss();
			}
		});
	}
}

点击按钮显示的布局文件bujv.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"

    android:orientation="vertical" >
    <TextView 
        android:id="@+id/tv1"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:gravity="center"
        android:background="@drawable/btn_style_one_disabled"
        android:textSize="20sp"
        android:text="注册"
        />
    <TextView 
        android:id="@+id/tv2"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:gravity="center"
        android:background="@drawable/btn_style_one_disabled"
        android:textSize="20sp"
        android:text="登录"
        />
</LinearLayout>

按返回按钮弹出退出的xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:background="@drawable/bj_but_popwind"
    android:orientation="vertical" >
    <TextView 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:gravity="center"
        android:textSize="20sp"
        android:textColor="#000000"
        android:text="退出聊天室"
        />
    <TextView 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:gravity="center"
        android:textColor="#000000"
        android:text="退出后你将收不到信息,你确定退出?"
        />     
	<TableLayout 
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:stretchColumns="0,1"
	    >
	    <TableRow >
	 <Button 
	    android:id="@+id/bu_exit_shi"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:gravity="center"
	    android:text="是"
	    />
	<Button 
	    android:id="@+id/bu_exit_fou"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:gravity="center"
	    android:text="否"
	    />
	    </TableRow>
	</TableLayout>
</LinearLayout>


© 著作权归作者所有

共有 人打赏支持
HWJ-杰杰
粉丝 0
博文 13
码字总数 2164
作品 0
南京
程序员
私信 提问
Android:PopupWindow

一、概述 1、构造方法 部分常用: PopupWindow(View contentView, int width, int height)Create a new non focusable popup window which can display the contentView.PopupWindow(View c......

Xushao
2013/12/16
0
2
Android技能树 — PopupWindow小结

前言: 关于下拉选择框,估计大家都有很多选择,我在以前的文章:项目需求讨论-HyBrid模式需求改造 上写过下拉框选择这一块,正好用的Spinner。 这次正好又有一个下拉框的需求,所以这次我使用...

青蛙要fly
09/09
0
0
使用 PopupWindow 的时候遇到Activity com.avcit… has leaked

在OnCreate方法中调用 > popupWindow.showAtLocation(view, Gravity.LEFT Gravity.TOP, x, y); 时,会出现以下错误: 这是因为这个popupWindow依赖的父Activity已经finish()的了,但是它还...

BravoZu
2013/12/27
0
0
Android入门第十篇之PopupWindow

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 介绍过AlertDialog之后,接下来就介绍一下PopupWindow这种对话框。PopupWindow是阻塞对话框,只有在外部线程 或者 PopupWindo...

晨曦之光
2012/03/14
889
0
PopupWindow源码分析

目录介绍 1.最简单的创建方法 1.1 PopupWindow构造方法 1.2 显示PopupWindow 1.3 最简单的创建 1.4 注意问题宽和高属性 2.源码分析 2.1 setContentView(View contentView) 2.2 showAsDropDow...

潇湘剑雨
10/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
33分钟前
2
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
58分钟前
6
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
6
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
5
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部