Главная » Разработка для Android » Описание меню для Активности

0

Чтобы описать меню для Активности, переопределите обработчик onCreateOptionsMenu. Этот метод инициирует первое появление меню на экране.

Обработчик onCreateOptionsMenu принимает в качестве параметра объ- ект Menu. Вы можете сохранить ссылку на меню и использовать ее в любом месте кода, пока метод onCreateOptionsMenu опять не будет вызван.

Вам необходимо всегда использовать реализацию этого обработчика из родительского класса, потому как она при необходимости автоматически включает в меню дополнительные системные пункты.

Используйте метод add из объекта Menu, чтобы заполнить меню. Для каждого нового пункта вы должны указывать параметры.

Группу, чтобы выделить  пункты  для пакетной  обработки  и сорти- ровки.

Уникальный идентификатор для каждого пункта. Выбор элементов, как правило,  обрабатывается с помощью метода onOptionsItemSelected, поэтому данный параметр важен при определении, какой именно пункт был указан. Каждый  ID для меню принято  описывать  в виде приватного  статического  свойства внутри класса Активности. Вы мо- жете использовать статическую  константу  Menu.FIRST и просто увеличивать значение для каждого следующего элемента.

Значение,  описывающее порядок, в котором пункты меню будут вы- ведены на экран.

Текст для пункта меню, указывается либо в виде строки, либо с по- мощью строкового ресурса.

Закончив наполнять меню, верните значение true.

В листинге 4.26 показано добавление в меню Активности единственного пункта.

Листинг 4.26. Добавление пункта меню

static final private int MENU_ITEM = Menu.FIRST;

@Override

public boolean onCreateOptionsMenu(Menu menu) {

super.onCreateOptionsMenu(menu);

// Идентификатор группы int groupId = 0;

// Уникальный идентификатор для пункта меню. Используется

// при обработке событий. int menuItemId = MENU_ITEM;

// Порядок размещения пункта в меню int menuItemOrder = Menu.NONE;

// Текст, который будет выведен для этого пункта меню. int menuItemText = R.string.menu_item;

// Создайте пункт меню и сохраните ссылку на него. MenuItem menuItem = menu.add(groupId, menuItemId,

menuItemOrder, menuItemText);

return true;

}

Как и в случае с самим меню, каждый  объект MenuItem, возвраща- емый методом add, действителен до следующего вызова обработчика onCreateOptionsMenu. Вместо того чтобы сохранять ссылку на каждый пункт, можно найти конкретный объект MenuItem, передавая  его иденти- фикатор  в метод findItem из экземпляра меню.

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

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