2018年5月24日

Android - 如果讓Dialog在按下空白地方或返回鍵時不消失

之前介紹過如何創建一個Dialog(對話方塊)來顯示信息參考這篇,但不少人會遇到一個問題,就是Dialog在使用者按下空白地方或是設備上的返回鍵時消失,這會導致Dialog原本要按鍵實現的功能無法實現,甚至造成某些Bug。為了避免這種情況,我們可以做些修改,讓Dialog在按下空白地方或返回鍵時也不消失。


方法非常簡單,只需在xxx.java加入以下代碼:


按下返回鍵時不消失
DialogInterface.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;
}
}
};

然後在創建Dialog時加上
builder.setOnKeyListener(keylistener);

按下空白地方時不消失
dialog.setCanceledOnTouchOutside(false);

如圖





~~~ 歡迎留言一起討論交流^^ ~~~

沒有留言:

張貼留言