<item>
Создает непосредственно пункты меню. Данный элемент может иметь вложенный элемент android:id
Идентификатор пункта меню, по которому приложение может распознать при выделении пункта меню пользователем
android:title
Текст, который будет выводиться в меню
Существуют и другие атрибуты для элемента item
, например android:icon="@drawable/home"
позволит также вывести значок для пункта меню, а android:enabled="false"
позволяет сделать пункт меню недоступным.
Атрибут android:titleCondensed
применяется в том случае, если обычный заголовок слишком широкий и не «помещается» в выбранном элементе меню.
Атрибут android:orderInCategory
определяет порядок, в котором отображаются элементы меню MenuItems
.
Кстати, вы можете использовать встроенные системные значки Android. Например, android:icon="@android:drawable/ic_menu_help"
позволит вам вывести значок помощи, который зашит в систему. Подробнее о системных значках почитайте в статье Системные графические ресурсы
При создании меню мы указали на строковые ресурсы @string/new_game
и @string/help
. Необходимо добавить новые строки в файле strings.xml
:
<string name="new_game">Новая игра</string>
<string name="help">Справка</string>
Теперь нужно внести изменения в классе активности, в котором будет выводиться меню. Программа должна сконвертировать созданный нами ресурс меню в программный объект. Для этой цели существует специальный метод MenuInflater.inflate()
, который вызывается в специальном методе обратного вызова onCreateOptionsMenu()
. Данный метод и предназначен для вывода меню при нажатии кнопки MENU на устройстве:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}
После вставки кода среда разработки попросит импортировать недостающие пространства имен.
import android.view.Menu;
import android.view.MenuInflater;
Метод onCreateOptionsMenu()
метод инициирует первое появление меню на экране и принимает в качестве параметра объект Menu
(для старых устройств). Вы можете сохранить ссылку на меню и использовать ее в любом месте кода, пока метод onCreateOptionsMenu()
опять не будет вызван. Вам необходимо всегда использовать реализацию этого обработчика из родительского класса, потому как она при необходимости автоматически включает в меню дополнительные системные пункты. В новых устройствах метод вызывается при создании активности. Метод должен возвращать значение true
, чтобы меню было видимым на экране.
Запустив программу, нажмите кнопку MENU на эмуляторе, чтобы увидеть созданное меню.