проблема в переопределении функции обратных клавиш по умолчанию - PullRequest
0 голосов
/ 27 августа 2009

В моем приложении я перезаписываю функции Android по умолчанию для кнопок с ключом (по Override onkeydown) .it работает нормально. Но когда компоненты счетчика по умолчанию выбирают элементы, окна и виртуальную клавиатуру (в Android 1.5) вводят на экран функциональность клавиш возврата по умолчанию рухнул из-за моего переопределения.

есть ли способ решить эту проблему? или как называется окно компонентов virtualkeypadwindow и spinner? Благодарю. , ,

1 Ответ

1 голос
/ 29 августа 2009

Проблема в том, что когда на экране есть Диалог , который на самом деле является совершенно отдельным Мероприятием, помощники диалога просто скрывают его от вас. Есть только 2 способа решить эту проблему (в зависимости от того, что вы пытаетесь сделать).

Вы можете расширить тип используемого вами диалога и переопределить onKeyPress внутри вашего производного класса, а затем использовать его вместо системного диалога по умолчанию.

public class MyDialog extends ProgressDialog {
    /*  ...  */

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            // handle the keypress
            return true;
        }
        return false;
    }
}

Вы можете запустить диалоги с опцией отмены, а затем поймать действие отмены ... что-то вроде:

public class MyActivity implements OnCancelListener {
    /*  ...  */

    public void startDialog() {
        ProgressDialog pd = ProgressDialog.show(
            MyActivity.this,    // Context
            "Progress Title",   // title for dialog
            "Progress Message", // message for dialog
            true,               // indeterminate?
            true,               // cancellable?
            this                // onCancelListener()
        );
    }

    @Override
    public void onCancel(DialogInterface dialog) {
        // the user canceled out of the load dialog (hit the 'back' button)... do something here
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...