Главная » Добавляем кнопку Home в панель Action Bar Android приложения | |
Во многих приложениях можно увидеть, что верхняя панель экрана 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. Запускаем и смотрим на результат: Все работает, при нажатии на стрелочку в панели Action Bar мы попадаем на главный экран! | |
|
Всего комментариев: 0 | |