天天看點

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);

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

繼續閱讀