Как я могу использовать кнопку «Назад» для Android, чтобы вернуться назад в свое приложение вместо того, чтобы закрывать свое приложение?

1

В моем приложении три действия: A, B и C. Я перехожу от A к B через кнопку OK, и я хочу вернуться с B на A, используя кнопку возврата по умолчанию на устройства Android. Когда я нажимаю кнопку, все приложение закрывается. Как я могу обойти эту проблему?

  • 2
    Покажите ваш код, который выполняется, а затем нажмите кнопку. Как вы начинаете B с A?
  • 5
    если ответы не помогут вам прекратить молчаливый голос. Прокомментируйте пожалуйста.
Теги:
callback

4 ответа

8
Лучший ответ

Я подозреваю, что вы вызываете finish() в своей кнопке "OK" onclick listener. Не делай этого. finish() удаляет вашу активность из стека действий.

Подробнее здесь.

  • 0
    Это почти наверняка, что это правильный ответ.
2

зачем начинать свою деятельность с результата? когда вы нажимаете на подставку, результат устанавливается на RESULT_CANCELED, формирует активность B, поэтому он падает, если вы не обрабатываете код результата...

вы можете обрабатывать обратное, как это

private static final int NONE = -1;

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_BACK) {

   setResult(NONE, intent);
        finish();
    return super.onKeyDown(keyCode, event);
}
  • 1
    Неверно говорить, что при нажатии кнопки «Назад» результат не возвращается. Возвращенный результат будет RESULT_CANCELED, равным 0
  • 0
    о, я не знал этого, я думал, что просто мое приложение не обрабатывает случай 0. спасибо за точность!
1

Когда вы нажмете кнопку Ok, начинайте с намерения... например

Intent int = новое намерение (контекст, B.class); startActivity (INT);

если вы не используете обратную связь.

Если используется кнопка возврата по умолчанию... , она вернется к A.

Надеюсь, что это поможет...

  • 0
    если проблема не устранена ... напишите свой код здесь
  • 0
    я использую следующую строку, чтобы перейти от моего основного класса Intent myIntent = new Intent (view.getContext (), Add.class); startActivityForResult (myIntent, 0);
Показать ещё 1 комментарий
0

В моем методе onClick (в главной операции) я использую код:

 Intent intent = new Intent(context, SecondActivity.class);
 context.startActivityForResult(intent, SecondActivity.SECONDACTIVITY_REQUEST);

В манифесте у меня есть:

 <activity android:name=".SecondActivity" android:screenOrientation="landscape" android:launchMode="standard"></activity>

Это работает для меня без каких-либо других настроек, которые я вижу. На какие события вы отвечаете?

Обратите внимание, что вы также можете вернуться к действию в коде:

super.setResult(Activity.RESULT_OK);
super.finish();

Изменить... Удостоверьтесь, что вы не проглатываете событие в событии Main Activity onKeyDown.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    //your code here
    //if (keyCode ==
    //...
    //else
    return super.onKeyDown(keyCode, event);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню