Добавляем кнопку Home в панель Action Bar Android приложения
Главная » Добавляем кнопку Home в панель Action Bar Android приложения

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

Часто такая кнопка бывает очень удобной в использовании и помогает улучшить навигацию по приложению. И в сегодняшнем уроке мы научимся оснащать экран своего приложения вот такой кнопкой на панели Action Bar, при нажатии на которую пользователь будет попадать на начальный экран приложения. Пример кнопки в Action Bar

Создаем новый проект, выбираем Blank Activity. Можно воспользоваться уроком о создании приложения с двумя activity, эти уроки будут сильно пересекаться. 

Приложение будет довольно простое. Программа состоит из двух экранов, на первом экране находится кнопка перехода на второй, а на втором экране в панели Action Bar находится кнопка Home для возврата к первому экрану. Вот так. 

Начнем с основного экрана. Откроем файл activity_main.xml и добавим сюда кнопку для перехода на второй экран:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 android:gravity="top|center">

 <Button
 android:id="@+id/button"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/change_activity"
 android:onClick="SecondActivity"/>

</LinearLayout>

Код для файла MainActivity.java будет предельно простым, всего лишь описание перехода на второй экран при нажатии на кнопку:

import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends ActionBarActivity {

 Intent intent;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 }

 public void SecondActivity(View v) {
 intent = new Intent(this, ActivityWithHome.class);
 startActivity(intent);
 }
}

Теперь перейдем к созданию второго экрана. Его интерфейс будет еще проще - всего лишь одна надпись TextView, сообщающая, что мы находимся на втором экране. Создаем файл по имени activity_with_home.xml и добавляем следующее:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:gravity="top|center">

 <TextView
 android:id="@+id/textView"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/activity_with_home"/>

</LinearLayout>

Строковые ресурсы мы создадим под конец.

Теперь нужно создать класс для второго экрана. Создаем новый класс по имени ActivityWithHome.java. Создание кнопки Home на панели Action Bar происходит следующим образом. В методе onCreate () мы обращаемся к панели Action Bar с помощью команды getSupportActionBar(). Далее мы создаем кнопку Home с помощью строки setHomeButtonEnabled, выставив параметр true, и включаем ее отображение на панели с помощью команды setDisplayHomeAsUpEnabled, также выставив параметр true. Код файла ActivityWithHome.java:

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.MenuItem;

public class ActivityWithHome extends ActionBarActivity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_with_home);

 ActionBar actionBar = getSupportActionBar();
 actionBar.setHomeButtonEnabled(true);
 actionBar.setDisplayHomeAsUpEnabled(true);
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 switch (item.getItemId()) {
 case android.R.id.home:
 startActivity(new Intent(this, MainActivity.class));
 return true;
 default:
 return super.onOptionsItemSelected(item);
 }
 }
}

Теперь осталось только добавить используемые строковые ресурсы в файл strings.xml и добавить вторую activity в файл манифеста приложения. Открываем файл strings.xml и добавляем:

<string name="activity_with_home">Экран с кнопкой на панели Action Bar</string>
<string name="change_activity">Сменить экран</string>
<string name="home_activity">На главный экран</string>

В файл AndroidManifest.xml добавим пару строк о втором экране:

<activity
 android:name=".ActivityWithHome"
 android:label="@string/activity_with_home">
</activity>

Вот и все. Осталось протестировать приложение и кнопочку Home на панели Action Bar. Запускаем и смотрим на результат:

Все работает, кнопка Home в Action Bar

Все работает, при нажатии на стрелочку в панели Action Bar мы попадаем на главный экран!

Категория: Уроки программирования | Просмотров: 1465 | Добавил: Oleg | Теги: Android приложение, панель Action Bar, кнопка Home | Рейтинг: 0.0/0
Всего комментариев: 0
avatar