есть ли по умолчанию приемник ключа возврата (на устройстве) в Android? - PullRequest
19 голосов
/ 07 апреля 2010

У меня есть два действия A и B. Когда я нажимаю кнопку в A, которая показывает B. Когда я нажимаю кнопку в B, она возвращается к A. Я установил метод overridePendingTransition после метода finish (). это работает правильно. но в случае, если текущая активность - B. В это время я нажимаю кнопку возврата по умолчанию на устройстве. это показывает переход справа налево, чтобы показать Деятельность A.

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

EDIT:

Log.v(TAG, "back pressed");
finish();
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);

Ответы [ 5 ]

40 голосов
/ 07 апреля 2010
@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:

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

26 голосов
/ 07 апреля 2010

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

@Override  
public void onBackPressed() {
    super.onBackPressed();   
    // Do extra stuff here
}
2 голосов
/ 07 апреля 2010
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK){
        //Do stuff
    }

    return super.onKeyDown(keyCode, event);
}
0 голосов
/ 18 июля 2010

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

@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 голосов
/ 07 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...