Главная » Разработка для Android » Параметры пунктов меню

0

Android поддерживает большинство традиционных параметров для пун- ктов меню, с которыми вы, скорее всего, уже знакомы. Это касается значков, ярлыков,  флажков  и переключателей.

Элементы CheckBox и RadioButton. Эти элементы  видны в расши- ренном и дочернем меню (см. рис. 4.9). Чтобы  пункт меню отображался в виде флажка, используйте метод setCheckable. Состояние этих элементов контролируется с помощью метода setChecked.

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

Чтобы  создать  группу  для элементов  RadioButton, назначьте  один и тот же групповой идентификатор для каждого пункта, передав его в метод Menu.setGroupCheckable и установив для параметра exclusive значение true.

Элементы  CheckBox  не отображаются в меню со значками,  поэтому объекты MenuItem такого вида должны быть зарезервированы для дочер-

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

// Создайте новый пункт с элементом CheckBox.

menu.add(0, CHECKBOX_ITEM, Menu.NONE, "CheckBox").setCheckable(true);

// Создайте новую группу для элементов RadioButton. menu.add(RB_GROUP, RADIOBUTTON_1, Menu.NONE, "Radiobutton 1"); menu.add(RB_GROUP, RADIOBUTTON_2, Menu.NONE, "Radiobutton 2"); menu.add(RB_GROUP, RADIOBUTTON_3, Menu.NONE,

"Radiobutton 3").setChecked(true);

menu.setGroupCheckable(RB_GROUP, true, true);

Сокращенные клавиатурные команды. Вы можете задать клавиатурные ярлыки для объектов MenuItem, используя метод setShortcut, который при- нимает два сочетания клавиш: одно для цифровой клавиатуры, другое — для полной. Клавиши нечувствительны к регистру.

// Добавьте ярлык для этого пункта меню. "0" – для цифровой клавиатуры,

// "b" – для полной. menuItem.setShortcut(‘0′, ‘b’);

Краткие заголовки. Меню со значками не отображает ярлыки или пере- ключатели, поэтому часто необходимо изменять выводимый им текст, чтобы сигнализировать о его состоянии. Метод setTitleCondensed позволяет  ука- зать текст, который будет отображаться только в меню со значками.

menuItem.setTitleCondensed("Short Title");

Значки. Свойство  icon — это идентификатор для ресурса  Drawable, содержащий  значок, который  применяется в объекте MenuItem. Значки отображаются только в соответствующем меню, в расширенном и дочернем меню они не выводятся.  Вы можете указать любой ресурс Drawable  в ка- честве значка, хотя для меню, как правило,  рекомендуется использовать черно-белые  изображения с эффектом рельефности.

menuItem.setIcon(R.drawable.menu_item_icon);

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

menuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {

public boolean onMenuItemClick(MenuItem _menuItem) {

[ … выполните обработку нажатия, верните true в случае успеха … ]

return true;

}

});

Намерения. Намерение, назначенное для пункта меню, срабатывает при на- жатии этого пункта, если данное событие не было перехвачено обработчиками

onMenuItemClickListener или onOptionsItemSelected. Сработав, Намере- ние передается в метод startActivity.

menuItem.setIntent(new Intent(this, MyOtherActivity.class));

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

По теме:

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