Делаем кнопку «Назад» в Android приложении

Во многих Android приложениях можно наблюдать небольшую кнопку в верхнем левом углу экрана, которая предназначена для возврата к предыдущему экрану приложения.

Подобный подход к организации пользовательского интерфейса не только экономит место на экране, но и делает работу с приложением более удобной.

Как создать такую кнопку?

Рассмотрим простой пример. Есть приложение, которое имеет два экрана: главный (FirstActivity) и дочерний (SecondActivity). Добавим на дочерний экран кнопку «Назад» для возвращения к главному экрану.

Процесс добавления кнопки «Назад» можно условно разделить на два этапа:

  • Отображение кнопки на экране;
  • Реализация необходимого функционала для неё.

Дело в том, что несмотря на то, что кнопка «Назад» изначально предусмотрена в Android, она не имеет функционала по умолчанию. После того, как она добавлена на экран при нажатии на неё не будет производиться никаких действий до тех пор, пока они не будут вами описаны в коде.

Но, обо всём по порядку.

Отображение кнопки «Назад» на экране

Для того чтобы кнопка «Назад» появилась на экране приложения, необходимо вначале получить доступ к ActionBar при помощи метода getSupportActionBar (метод не принимает параметров).

Данный метод возвращает объект класса ActionBar из пакета android.support.v7.app. Данное обстоятельство необходимо обязательно учитывать при импорте пакетов, чтобы не перепутать с данный класс с классом ActionBar из пакета android.app.

Далее при помощи методов setHomeButtonEnabled и setDisplayHomeAsUpEnabled включаем отображение кнопки «Назад» на экране, как это показано ниже.

Все вышеописанные действия следует выполнять в методе onCreate после вызова метода setContentView.

В результате мы увидим на экране приложения добавленную нами кнопку.

Но, то что нами сделано, это только полдела. Ведь несмотря на то, что кнопка уже отображается, она ещё не работает.

Напишем для неё необходимый функционал.

Реализация функционала для кнопки «Назад»

Нажатие на кнопку «Назад» обрабатывается также, как и для кнопки из обычного меню. В Android для кнопки «Назад» уже предусмотрен специальный id («home»).

Ниже приведён простейший пример возврата к предыдущему экрану, в котором мы просто завершаем работу текущего:

Для того чтобы нажатие на кнопку «Назад» отработало корректно возврат true из метода onOptionsItemSelected после вызова метода finish обязателен.

Функционал кнопки «Назад» вовсе необязательно должен сводиться к элементарным операциям.

Например, в стандартном приложении «Контакты» нажатие на кнопку «Назад» означает не только возврат к предыдущему экрану, но и сохранение введённой или изменённой информации о контакте.

Конкретные действия при нажатии на кнопку «Назад» в общем случае определяются решаемой задачей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *