AlertDialog禁止返回键

简介:
android 如何让dialog不消失,即使是用户按了返回键dialog也不消失
解决的问题:软件提示升级的dialog时候,用户有可能按了返回键,但是现在的需求是用户只能按“确定升级”或者“暂时不升级”这两个按钮才能拿dialog消失,按返回键不能使dialog消失 
方案:截取activity的 onkeydown事件,而应该截取dialog的key响应事件,当dialog在前台显示的时候,keylistener首先会派发到dialog里面,在那里面监听就行了。
先申明一个keylistener。
    OnKeyListener keylistener = new DialogInterface.OnKeyListener(){
        public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
            if (keyCode==KeyEvent.KEYCODE_BACK&&event.getRepeatCount()==0)
            {
             return true;
            }
            else
            {
             return false;
            }
        }
    } ;
在把这个listener注册到dialog里面去 当初始化dialog的时候
                builder.setTitle(getText(R.string.XXXX))
                        .setMessage(getText(R.XXXXXX))
                        .setOnKeyListener(key).setCancelable(false)
                        .setPositiveButton(android.R.string.ok, someOKButtonListener)
                        .setNegativeButton(android.R.string.cancel, null);

PS: setCancelable(false),作用是当dialog弹出来的时候,如果触点在dialog外围,按照默认的方式 dialog将消失。如果这个设为false的话 这种情况dialog就不会消失了。  加了这一句就OK了。dialog.setCancelable(false);





    本文转自 一点点征服   博客园博客,原文链接:http://www.cnblogs.com/ldq2016/p/6026490.html,如需转载请自行联系原作者


相关文章
|
21天前
toolbar设置返回键以及点击事件
toolbar设置返回键以及点击事件
9 0
|
8月前
|
Android开发
Android中保存当前按钮的状态 按back键返回之后再次进入没有改变
Android中保存当前按钮的状态 按back键返回之后再次进入没有改变
45 0
Dialog和软键盘的冲突
一、冲突描述 为了说明问题,我先随意在我之前的项目写个dialog做个测试。 先写一个dialog,自定义的,宽高为填充屏幕,里面是两个edittext。
2039 0
|
Android开发
Android--实现点击一次返回键返回桌面而不是退出应用
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/54971724 点击一次返回键...
1061 0
|
Android开发
ActivityGroup中EditText无法删除的问题
坑,以前比较少用ActivityGroup,最近使用才发现ActivityGroup中多个Activity中如果都有Edittext是无法后退删除。 网上说有种方法监听dispatchKeyEvent return就可以,我只想说~然并卵啊!!! 后来发现只能重写EditText~以前没发觉,最近需要用到才发现~惭愧  源码链接稍后发到下面给大家备用。
896 0