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);
本文轉自 一點點征服 部落格園部落格,原文連結:<b>http://www.cnblogs.com/ldq2016/p/6026490.html</b>,如需轉載請自行聯系原作者