Android: вернуться к предыдущей активности - PullRequest
484 голосов
/ 28 октября 2010

Я хочу сделать что-то простое в приложении для Android. Как можно вернуться к предыдущему занятию?

Какой код мне нужен, чтобы вернуться к предыдущему занятию

Ответы [ 22 ]

7 голосов
/ 13 апреля 2011

Вы можете явно позвонить onBackPressed это самый простой способ
Подробнее см. . Вернуться к предыдущему виду деятельности

6 голосов
/ 30 января 2018

У меня та же проблема, и

finish();  OR super.onBackPressed();

отлично сработало для меня, оба работали одинаково, но не с return

6 голосов
/ 18 июля 2013

Начните второе действие, используя намерение (либо используйте startActivity или startActivityForResult в соответствии с вашими требованиями).Теперь, когда пользователь нажимает кнопку «Назад», текущая активность сверху будет закрыта, а предыдущая будет отображена.

Теперь допустим, что у вас есть два действия: одно для выбора некоторых параметров для пользователя, таких как язык, страна и т. Д., И после его выбора пользователь нажимает кнопку Далее, чтобы перейти к форме входа (например),Теперь, если вход в систему неуспешен, тогда пользователь будет в процессе входа в систему, что, если вход в систему успешен?

Если вход в систему успешен, вам нужно начать другое действие.Это означает, что будет запущено третье действие, но все еще выполняются два действия.В этом случае будет хорошо использовать startActivityForResult.После успешного входа в систему отправьте данные OK обратно к первому действию и закройте действие входа.Теперь, когда данные получены, начните третье действие и закройте первое действие, используя Finish.

5 голосов
/ 08 августа 2016

Попробуйте это сделать, как вы должны нажать кнопку назад

finish();
onBackPressed();
5 голосов
/ 31 августа 2012

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

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {

        finish();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
4 голосов
/ 07 апреля 2013

Все новые действия / намерения по умолчанию имеют обратное / предыдущее поведение, если только вы не закодировали finish() в вызывающем действии.

4 голосов
/ 02 февраля 2015
@Override
public void onBackPressed() {
    super.onBackPressed();
}

и если вы хотите, чтобы по нажатию кнопки вернулись, просто введите

bbsubmit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        onBackPressed();
    }
});
3 голосов
/ 30 июля 2017
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
      int id = item.getItemId();

      if ( id == android.R.id.home ) {
          finish();
          return true;
      }

      return super.onOptionsItemSelected(item);
 }

Попробуйте, это работает как на кнопке возврата на панели инструментов , так и на аппаратной кнопке возврата .

2 голосов
/ 10 октября 2015

Я предлагаю NavUtils.navigateUpFromSameTask (), это легко и очень просто, вы можете узнать это у разработчика Google. Хочу помочь вам!

0 голосов
/ 30 июля 2018

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

Случай 1: Если вы хотите вернуть результат к предыдущему действию, тогда ActivityA.java

 Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
               startActivityForResult(intent,2);

FBHelperActivity.java

 Intent returnIntent = new Intent();
 setResult(RESULT_OK, returnIntent);
 finish();

Случай 2: ActivityA -> FBHelperActivity ----> ActivityA

ActivityA.java

 Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
               startActivity(intent);

FBHelperActivity.java

after getting of result call finish();
 By this way your second activity will finish and because 
 you did not call finish() in your first activity then
 automatic first activity is in back ground, will visible.
...