существует ли значение по умолчанию назад ключ (на устройстве) слушатель в андроиде?

У меня есть две операции A и B. когда я нажимаю кнопку в, который будет шоу B., когда я нажму Button in B, это отступает A. я установил overridePendingTransition метод после конца () метод. это работает правильно. но в случае, если текущее Действие является B. на том времени, я нажимаю кнопку "Назад" по умолчанию в устройстве. это показывает справа налево переход для показа Действия A.

Как я могу послушать, что Значение по умолчанию назад включает устройство?

Править:

Log.v(TAG, "back pressed");
finish();
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);
19
задан Macarse 27 July 2010 в 05:43
поделиться

5 ответов

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

Следующая ссылка представляет собой подробное объяснение того, как обрабатывать ключевые события назад, написанное самими разработчиками Android:

Использование клавиши возврата

42
ответ дан 30 November 2019 в 02:02
поделиться
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK){
        //Do stuff
    }

    return super.onKeyDown(keyCode, event);
}
2
ответ дан 30 November 2019 в 02:02
поделиться

Для Android 2.0 и более поздних версий в классе Activity есть специальный метод:

@Override  
public void onBackPressed() {
    super.onBackPressed();   
    // Do extra stuff here
}
26
ответ дан 30 November 2019 в 02:02
поделиться

Дополнительную информацию о задних ключах можно найти здесь: http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

0
ответ дан 30 November 2019 в 02:02
поделиться

Я использую этот код для операции с медиаплеером. Мне нужно было остановить воспроизведение, когда пользователь нажал кнопку «Назад», но все еще мог вернуться к предыдущему действию.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        try{
            mp.stop(); //this line stops the player
            return super.onKeyDown(keyCode, event);//this line does the rest 
        }
        catch(IllegalStateException e){
            e.printStackTrace();
        }
        return true;
    }

    return super.onKeyDown(keyCode, event); //handles other keys
}
0
ответ дан 30 November 2019 в 02:02
поделиться
Другие вопросы по тегам:

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