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);
相关文章
- AlertDialog禁止返回键
- IDEA返回上一步和下一步快捷键无效:Ctrl+Alt+左箭头 Ctrl+Alt+右箭头
- Android适配底部返回键等虚拟键盘的完美解决方案
- vue实现浏览器禁止鼠标选中文字&禁止右键&禁止F12键
- H5中 JS 禁用安卓手机物理返回键 , 微信浏览器中也支持
- 解决APP更新和安装后点击“直接打开”打开app,按home键回到桌面,再次点击图标进入程序会重新开始,不是返回上次打开的界面的问题。
- Android 按返回键不销毁当前Activity
- Android 模拟返回键、菜单键、主页键
- VsCode:设置前进和后退 (返回上一个浏览位置/下一个浏览位置)快捷键
- 计算机输入d为啥返回桌面,按D键空格键就退出输入回到桌面