Отмена AlertDialog при нажатии кнопки поиска оборудования - PullRequest
2 голосов
/ 20 июля 2011

Я показываю AlertDialog в моем приложении, и хотя я установил его как неотменяемый, он отменяется при нажатии кнопки поиска оборудования.

Я попытался переопределить метод keyDown и определить нажатие клавиши, а также метод onSearchRequested. Но оба они не работают при первом нажатии кнопки, хотя после этого они работают.

Есть идеи?

PS: я знаю, что это повторный вопрос .... но никто не ответил на него, поэтому переиздание:)

1 Ответ

4 голосов
/ 20 июля 2011

Вы должны быть в состоянии сделать это с OnKeyListener. В этом случае разрешены только ключи DPAD.

return new AlertDialog.Builder(this)
    .setTitle("Title")
    .setMessage("Dialog message")
    .setCancelable(false)
    .setOnKeyListener(new DialogInterface.OnKeyListener() {

        public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
            //whitelist allowed keys - allow navigation keys only
            if (keyCode < KeyEvent.KEYCODE_DPAD_UP || keyCode > KeyEvent.KEYCODE_DPAD_CENTER) {
                return true;
            }
            return false;
        }
    })
.create();
...