onKeyDown () проблема

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

13
задан mmBs 12 March 2014 в 13:15
поделиться

6 ответов

Я обнаружил, что возвращаю true для всех событий, где я должен был только вернуть его для кода, который я использовал. Я переместил return true в область действия оператора if и вернул false в противном случае Это вернуло мое меню!

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        dba.close();
        Intent result = new Intent("Complete");
        setResult(Activity.RESULT_OK, result);
        finish();
        return true;
    }
    return false;
}
12
ответ дан 1 December 2019 в 18:55
поделиться

Что ж, при просмотре документации API выделяется только то, что атрибут android: clickable необходимо установить, а также включить представление, чтобы метод onKeyDown (...) работал.

1
ответ дан 1 December 2019 в 18:55
поделиться

Возможно, ваше действие поглощает ключевое событие. Переопределите onKeyDown в действии и установите там точку останова.

Также: когда вы говорите, что «поместили его в основную форму», используете ли вы макет XML или делаете это в своем коде?

0
ответ дан 1 December 2019 в 18:55
поделиться

I had a similar problem and solved it by adding

this.requestFocus();
this.setFocusableInTouchMode(true);

in the constructor of my SurfaceView subclass.

14
ответ дан 1 December 2019 в 18:55
поделиться

вы можете попробовать это

this.setFocusable(true);
1
ответ дан 1 December 2019 в 18:55
поделиться

Я решил удалить оператор if, например:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch(keyCode)
    {
        case KeyEvent.KEYCODE_CAMERA:
            videoPreview.TakePicture();
            return true;
    }
    return super.onKeyDown(keyCode, event);
}
6
ответ дан 1 December 2019 в 18:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: