Вам необходимо переопределить onOptionsItemSelected()
и использовать идентификатор android.R.id.home
, чтобы переопределить действие «вверх». Что бы я сделал, это вызвал бы функцию onBackPressed()
, когда нажата кнопка домой. Пример кода будет выглядеть так
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
getActivity().onBackPressed()
return true;
}
return super.onOptionsItemSelected(item);
}
Более подробную информацию вы можете найти в документации Android по обеспечению навигации
Обратите внимание, что ответ ниже был написан до редактирования исходного вопроса. Я оставляю это здесь и ответил на вопрос выше.
Оригинальный ответ:
Если вы конкретно говорите о
@Override
public void onBackPressed(){
super.onBackPressed();
// stuff
}
тогда проблема в том, что вы звоните super.onBackPressed()
перед вашим кодом. Этот вызов вернется к предыдущему действию или выйдет из приложения в зависимости от того, к какому действию оно обращено. Вместо этого измените его на -
@ Override
public void onBackPressed(){
//your code to do stuff here
super.onBackPressed();
}
и он сначала выполнит ваш код, а затем вернется.