Подтвердить что ты не робот

Сделайте кнопку "вверх", как кнопка "назад" на Android

Дизайн Android-приложения Я работаю с вызовами кнопки "Вверх", чтобы вести себя так же, как и кнопка "Назад", но я не уверен, как это сделать.

Я знаю, что для кнопки "Вверх" необходимо указать android:parentActivityName для видимости в действии, но указание фиксированной родительской активности на самом деле не имеет смысла для активности. Представьте себе этот сценарий с действиями A, B и C:

  • Запустите в действие A, он содержит две кнопки: каждый из вас ведет к действиям B и C соответственно.
  • Нажмите кнопку для активности B.
  • Переход к операции B. содержит две кнопки: каждый из вас ведет к действиям A и C соответственно.
  • Нажмите кнопку для активности C.
  • Переход к действию C.
  • Нажмите кнопку "вверх" , вы должны перейти к активности B.
  • В действии B сейчас: нажмите кнопку для активности A.
  • Переход к активности A.
  • Нажмите кнопку "вверх" , вы должны перейти к активности B.
  • В отношении активности B Нажмите кнопку "вверх" , вы должны быть заняты.
  • В действии A сейчас: нажмите кнопку для действия C.
  • Переход к действию C.
  • Нажмите кнопку "вверх" , вы должны перейти к активности A.

Если бы я должен был указать android:parentActivityName для каждого вида деятельности, может иметь смысл, чтобы родительская активность B и C была A, но это означает, что каждый раз, когда мы нажимаем кнопку "вверх" из действий B или C, мы приземляемся при активности A (и это не всегда то, что должно произойти).

Есть ли у кого-нибудь опыт в этом вопросе?

4b9b3361

Ответ 1

из всех трех ваших действий добавьте следующие

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
    }

    return(super.onOptionsItemSelected(item));
}

когда вы нажимаете кнопку "вверх" в своем приложении, он будет вызывать onOptionsItemSelected с идентификатором android.R.id.home только для этого случая и вручную вызвать onBackPressed()