Главная » Разработка для Android » МЕНЮ – программирование Android

0

 

Последний элемент управления приложением, который мы рассмотрим, – это меню. В примере 7.14 показано, как реализовать простое меню, переопределив два метода базового класса Actіvity.

Пример 7.14. Реализация меню

Если добавить этот код в класс TouchMe, то при нажатии кнопки MENU (Меню) на устройстве приложение отобразит меню (рис. 7.7).

Рис. 7.7. Простое меню

Нажав «Ввод» или снова коснувшись экранной клавиши ввода пальцем, мы очистим весь вид с точками.

Интересно, что при запуске этого приложения обнаруживается следующая особенность: добавленный элемент-меню работает практически всегда, кроме случаев, когда вид DotView находится в фокусе. Вы догадываетесь почему?

Если вы полагаете, что проблема заключается в OnKeyListener, установленном в DotView, то вы правы! Как показано в примере 7.15, слушатель захватывает событие нажатия клавиши и возвращает true при ее нажатии. Из-за этого нажатие клавиши меню не проходит стандартной обработки, свойственной для View. Чтобы меню заработало, OnKeyListener нуждается в новом условии для проверки.

Пример 7.15. Улучшенная обработка нажатия на клавишу

Во фреймворке пользовательского интерфейса Android также поддерживаются контекстные меню. ContextMenu появляется в ответ на долгое нажатие в виджете, который это меню поддерживает. Код, необходимый для добавления контекстного меню в приложение, практически аналогичен коду обычного меню, показанного выше, за тем исключением, что при работе применяются методы onCreateContextMenu и onContext ItemSel ected. Нужен еще один вызов. Для поддержки контекстных меню виджету необходимо установить слушатель View.OnCreateContextMenuListener, вызывая метод setOnCreateContextMenuListener, относящийся к View этого виджета. Ксчастью, поскольку Activity реализует интерфейс View.OnCreateContextMenuListe пег, обычная процедура установки выглядит как код из примера 7.16.

Пример 7.16. Установка ContextMenuListener

Путем простого переопределения стандартных пустых методов Activity ваше приложение получает контекстное меню.

В общих чертах было показано, как работает интерфейс контроллера Android, и рассказано об инструментах, которые управляют его базовыми компонентами: окнами, видами и событиями.

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии