popupwindow和dialog监听返回键
来源:互联网 发布:淘宝优站9.9 编辑:程序博客网 时间:2024/06/05 15:39
使用情况:
在activity中,出现了popupwindow和dialog,这个时候,如果点击返回键,它们消失了,但是一些操作还在继续。如:1、进行耗时操作,出现dialog提醒用户等待,这时,按下返回键,dialog消失,但是,耗时操作还在继续。这是因为,dialog拦截了返回键,消费了它,让自己消失,但是其他进程还在继续。2、一个activity(A),start了新activity(B),B要展示一个popupwindow,这时,按下返回键,popupwindow消失了,但是B还在。我要的效果是:按下返回键,popupwindow消失,B做finish
代码讲解:
1、popupwindow
需要导包
import android.view.View.OnKeyListener;
View popupWindowView = LayoutInflater.from(context).inflate(R.layout.select_layout, null); popupWindow = new PopupWindow(popupWindowView, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); popupWindow.setAnimationStyle(R.style.SelectAnimationShow); // 菜单背景色 ColorDrawable dw = new ColorDrawable(0x00ffffff); popupWindow.setBackgroundDrawable(dw); popupWindow.showAtLocation(LayoutInflater.from(context).inflate(R.layout.select_activity_layout, null), Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0); popupWindow.setFocusable(true); popupWindowView.setFocusable(true); popupWindowView.setFocusableInTouchMode(true); popupWindowView.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { //do something... return true; } });
**注:**PopupWindow的构造函数,一定,一定要用上面写的那种,其他的,没效果或者出错。原因不清楚。
这样写了以后,出现popupwindow时,点击返回键,popupwindow消失,activity-B也会走到onDestroy()这个生命周期
2、dialog
DialogInterface.OnKeyListener keylistener = new DialogInterface.OnKeyListener(){ public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode==KeyEvent.KEYCODE_BACK&&event.getRepeatCount()==0) { //do something... return false; } else { return true; } } } ;
最后
mWaitingDialog.setOnKeyListener(keylistener);
0 2
- popupwindow和dialog监听返回键
- android PopupWindow 监听返回键,
- Android 返回键取消dialog的监听
- Android之PopopWindow、Dialog监听返回键
- Dialog和Popupwindow
- PopupWindow和Dialog
- dialog和popupwindow和activityDialog
- 笔记41--Dialog和Popupwindow
- Dialog和Popupwindow的区别
- Dialog和PopupWindow的区别
- 当dialog弹出时如何监听系统的返回键
- Fragment轻松监听返回键/Fragment中的popupwindow响应返回键隐藏
- ontouchevent与onkeydown监听事件,dialog的setOnKeyListener的监听key手机返回键
- popupwindow返回键处理
- PopupWindow重写返回键
- android Dialog 监听返回事件(back)
- android弹出dialog中监听返回建
- Dialog && PopupWindow
- yii2实战教程之第一个Yii程序
- ROHC协议库测试与改造(二)
- CodeForces 653A Bear and Three Balls
- git创建仓库,修改和提交
- php 生成唯一订单号,文件锁
- popupwindow和dialog监听返回键
- *Cannot delete or update a parent row: a foreign key constraint fails ... /ConstraintViolationExcept
- 排序之直接插入排序和折半插入排序
- redis之redis-trib集群管理
- Linux下安装MYSQL (三、设置初始密码 )
- CityMaker学习教程08 一个示例,创建漫游路径
- MyBatis-搭建MyBatis开发环境二(MyEclipse版)
- Linux:yum安装软件工具
- Android网络基础之HttpClient与HttpURLConnection