Добавление командных кнопок

Этот урок научит вас

  1. Указание действий в XML
  2. Добавьте действия на панель действий
  3. Ответить на кнопки действий
  4. Добавить кнопку Вверх для деятельности нижнего уровня

Панель действий позволяет добавлять кнопки для наиболее важных действий, связанных с текущим контекстом приложения. Те, которые появляются непосредственно на панели действий с иконой и/или текстом известны как кнопки действий. Действия, которые не помещаются на панели действий или которые не являются достаточно важными, скрыты в переполнении действий.

 

Указание действий в XML


Все кнопки действий и другие элементы, доступные в переполнении действий определяются в XMLресурс меню. Для добавления действий в панель действий, создайте новый XML файл в вашем проекте в res/menu/ каталоге.

Добавьте <item> элемент для каждого элемента, который вы хотите включить в панель действий. Например:

res/menu/main_activity_actions.xml

 

Это объявляет, что действие Поиска должно появиться как кнопка действия, когда есть место в панели действий, но действие Настройки должно всегда проявляться в переполнении. (По умолчанию, все действия отображаются в переполнении, но хорошая практика явно объявлять ваши дизайнерские намерения для каждого действия.)

icon атрибут требует идентификатор ресурса изображения. Имя, которое следует за @drawable/должно быть именем растрового изображения, которое вы сохранили в вашем проекте вres/drawable/ каталоге. Например, "@drawable/ic_action_search" указывает наic_action_search.png. Аналогично, title атрибут использует строковый ресурс, который определен в XML файле в вашем проекте в res/values/ каталоге, как описано в Построение простого пользовательского интерфейса.

Примечание: При создании иконок и других растровых изображений для вашего приложения, важно, что бы вы предоставляли несколько версий, каждая из которых оптимизирована для различной плотности экрана. Это обсуждается более детально в уроке Поддержка различных экранов.

Если ваше приложение использует Библиотеку Поддержки для совместимости версий, вплоть до Android 2.1, showAsAction атрибут недоступен из android: пространства имен. Вместо этого, атрибут предоставляется библиотекой поддержки и вы должны указать ваше собственное пространство имен XML, и использовать это пространство имен в качестве префикса атрибута. (Пользовательское пространство имен XML должно быть основано на имене вашего приложения, но может быть любым именем, которое вы захотите, и доступно только в рамках файла, в котором оно объявлено). Например:

res/menu/main_activity_actions.xml

 

Добавьте действия на панель действий


Для размещения пунктов меню в панели действий, реализуйте onCreateOptionsMenu() метод обратного вызова в вашей деятельности, чтобы наполнить ресурс меню через полученный Menuобъект. Например:

 

Ответить на кнопки действий


Когда пользователь нажимает на одну из кнопок действий или другой элемент в переполнении действий, система вызывает в вашей деятельности onOptionsItemSelected() метод обратного вызова. В вашей реализации этого метода, вызовите getItemId() у переданного MenuItem для определения, какой элемент была нажата—возвращаемый идентификатор соответствует значению, которое вы объявили в соответствующем <item> элементе в android:id атрибуте.

 

Добавить кнопку Вверх для деятельности нижнего уровня


Рисунок 4. Вверх кнопка в Gmail.

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

При работе с Android 4.1 (Уровень API 16) или выше, или при использовании ActionBarActivity из Библиотеки Поддержки, выполнение навигации Вверх просто требует, чтобы вы объявили родительскую деятельность в файле манифеста и включили кнопкуВверх для панели действий.

Например, вот как можно объявить родителя деятельности в манифесте:

 

Затем включите значок приложения в качестве кнопки Вверх вызвав setDisplayHomeAsUpEnabled():

 

Поскольку система теперь знает, что MainActivity является родительской деятельностью дляDisplayMessageActivity, когда пользователь нажимает кнопку Вверх , система переходит к родительской деятельности в соответствующих случаях—вы не должны обрабатывать Вверх событие кнопки.

 

Добавление командных кнопок обновлено: Февраль 5, 2016 автором: admin

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

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

*
*
Website