简单的PopupWindow小例子
来源:互联网 发布:手机淘宝描述在哪 编辑:程序博客网 时间:2024/05/17 07:18
PopupWindow是对话框的一种,比AlertDialog更灵活。
AlertDialog是非阻塞的。
PopupWindow是阻塞的。
/** * */package cn.popup;import android.app.Activity;import android.app.AlertDialog;import android.graphics.Color;import android.os.Bundle;import android.os.Handler;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.PopupWindow;import android.widget.TextView;public class TestAct extends Activity { private static final String TAG = TestAct.class.getName(); private int seconds = 0; TextView parentMessage = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); ViewGroup.LayoutParams ww = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); parentMessage = new TextView(this); parentMessage.setLayoutParams(ww); parentMessage.setText("简单的PopupWindow"); layout.addView(parentMessage); AlertDialog dialog = new AlertDialog.Builder(this).create(); dialog.setMessage("AlertDialog非阻塞的对话框"); dialog.show();//todo: 直接调用PopupWindow对话框,死机,说明PopupWindow阻塞UI线程 和AlertDialog不同// new Handler().post(new Runnable() {// @Override// public void run() {// //To change body of implemented methods use File | Settings | File Templates.// showPopupWindow(TestAct.this);// }// });//todo:延后100毫秒,正常跳出PopupWindow对话框 new Handler().postDelayed(new Runnable() { @Override public void run() { //To change body of implemented methods use File | Settings | File Templates. showPopupWindow(TestAct.this); } }, 100); } private void showPopupWindow(Activity act) { ViewGroup.LayoutParams ww = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); LinearLayout layout = new LinearLayout(act); layout.setBackgroundColor(Color.BLUE); EditText input = new EditText(act); input.setLayoutParams(ww); input.setText("跳出PopupWindow,我创建的时候会阻塞UI线程"); layout.addView(input); final PopupWindow pw = new PopupWindow(layout, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true); pw.setOutsideTouchable(false); pw.update(); View v = act.getWindow().getDecorView();//decorView是window中的最顶层view pw.showAtLocation(v, Gravity.CENTER, 0, 0); }}
- 简单的PopupWindow小例子
- popupWindow的简单例子 背景模糊
- PopupWindow+RadioButton简单实用小例子之单选(二)
- Android popupWindow一个小例子
- Android自定义PopupWindow小例子
- 一个支持ListView的底部弹出控件 PopupWindow 小例子
- PopupWindow的例子
- PopupWindow的使用例子
- 简单的ajax小例子
- Delegate简单的小例子
- hibernate的简单小例子
- $.ajax 的简单小例子
- 简单的Sping小例子
- PopupWindow简单实用小例子之弹出内容显示框(一)
- 简单的PopupWindow
- 简单的PopupWindow
- popupwindow的简单使用
- PopupWindow的简单用法
- 杭电 25道动态规划汇总
- 小波包变换(函数应用介绍)
- Mysql数据库安装问题(1045)
- Android开发中在一个Activity中关闭另一个Activity
- android控件Button之简单使用
- 简单的PopupWindow小例子
- IOS:AVAudioPlayer音频播放器
- 如何把多维数组传入函数做为参数之几个方法
- 解析“ubuntu.cn99.com:http”时,出现了某些故障(-5 - 没有与主机名关联的地址)
- hdu 2160 母猪的故事
- A题 数塔
- C#中使用BindingList 绑定DataGridView 可以实现动态绑定,优与List<T>集合的绑定
- B题 最长公共子序列
- JAVA操作EXCEL的一些局限性