您的位置:首页 > 移动开发 > Android开发

android 如何让dialog不消失,即使是用户按了返回键dialog也不消失

2015-01-27 16:36 429 查看
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);


setCancelable(false),作用是当dialog弹出来的时候,如果触点在dialog外围,按照默认的方式 dialog将消失。如果这个设为false的话 这种情况dialog就不会消失了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: