popupwindow和dialog监听返回键

原创 2016年05月30日 12:54:26

使用情况:
在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);

android Dialog 监听返回事件(back)

一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功能.  Andr...
  • lincyang
  • lincyang
  • 2010年09月30日 14:36
  • 24930

ontouchevent与onkeydown监听事件,dialog的setOnKeyListener的监听key手机返回键

先讲 dialog的setOnKeyListener的监听key手机返回键 tipsDialog.setOnKeyListener(new DialogInterface.OnKeyListener...

DialogFragment监听返回键的方法

在onCreateView中加入 this.getDialog().setOnKeyListener(new OnKeyListener() { @Override public ...
  • liyuxp
  • liyuxp
  • 2013年12月10日 22:30
  • 4644

Dialog与返回键onKeyDown

转自:http://www.android100.org/html/201403/07/5804.html 1、如果想阻止“返回键”关闭Dialog最简单的方法是setCancelable(fals...

android activity返回键被dialog屏蔽

描述:在一个activity里弹出一个dialog,这个时候点击返回键的时候想直接把activity finish掉,但是此时返回键的监听被dialog给屏蔽了,只能先finish掉dialog 解...

PopupWindow重写返回键

LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); ...

android PopupWindow 监听返回键,

LayoutInflater li = (LayoutInflater) getBaseContext().getSystemService(     LAYOUT_INFLATER_SERVICE...

android关于重写popwindow,back事件的监听

第一:问题: PopupWindow弹出窗口之后,想在back键的时候自己做其他的事情,如何获取back键。 第二:解决:  keyboardView.setFocusable(true);//...

Fragment轻松监听返回键/Fragment中的popupwindow响应返回键隐藏

现在的开发我们基本上都是一个主activity中放多个fragment,点击返回按钮的时候,直接退出主activity,但是我们在fragment中经常会弹出例如popupWindow这样的布局,用户...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:popupwindow和dialog监听返回键
举报原因:
原因补充:

(最多只允许输入30个字)