Идентификаторы выбора и группы - это ключи, используемые для разблокировки дополнительных функций меню, например, таких как:
- Вызов MenuItem#setCheckable() с идентификатором выбора для управления тем, имеет ли выбор меню двухпозиционный флажок рядом с заголовком, где значение флажка переключается, когда пользователь выбирает этот выбор меню.
- Вызов Menu#setGroupCheckable() с идентификатором группы превращает набор пунктов меню в пункты с радиокнопкой взаимоисключения между ними, так что один из группы может находиться в состоянии "проверено" в любое время.
Вы также можете вызвать addIntentOptions(), чтобы заполнить меню вариантами, соответствующими доступным действиям для намерения (см. главу 25).
Наконец, вы можете создавать выпадающие подменю, вызывая addSubMenu() и предоставляя те же параметры, что и addMenu(). В конечном итоге Android вызовет функцию onCreatePanelMenu(), передав ей идентификатор выбора вашего подменю, а также другой экземпляр Menu, представляющий само подменю. Как и в случае с onCreateOptionsMenu(), вы должны создать цепочку вверх к суперклассу, а затем добавить варианты меню в подменю. Одно из ограничений заключается в том, что вы не можете бесконечно вложить подменю - меню может иметь подменю, но подменю не может иметь подменю.
Если пользователь делает выбор в меню, ваша активность будет уведомлена через обратный вызов onOptionsItemSelected() о том, что был выбран пункт меню. Вам будет передан объект MenuItem, соответствующий выбранному варианту меню. Типичный шаблон - это switch() по идентификатору меню (item.getItemId()) и предпринять соответствующие действия. Обратите внимание, что функция onOptionsItemSelected() используется независимо от того, был ли выбранный пункт меню в базовом меню или в подменю.