из кода:
menu.add(0, v.getId(), 0, "Remove");
v представляет собой вид, который может быть RadioButton или любой другой тип Views.
если вы не используете xml для определения RadioButton. вы должны установить его идентификатор в своем приложении.
v.setId();
Или вы можете определить ids.xml в res/values.
образцы/ApiDemos/SRC/COM/пример/Android/APIs/RadioGroup1.java образцы/ApiDemp/RES/значения/ids.xml
Меню & Контекстное меню разработчики руководство:
http://developer.android.com/guide/topics/ui/menus.html
Если вы прокрутите приведенную выше страницу, вы можете найти образец RadioButton в контекстном меню.
Quote образует вышеупомянутую страницу:
Триггерных пункты меню
Меню может быть полезным в качестве интерфейса для поворота варианты включения и выключения, используя флажок для автономных вариантов, или радиокнопки для групп друг друга эксклюзивные опции. На рисунке 2 показано подменю с элементами, которые можно проверить с переключателями.
Примечание: Элементы меню в меню значков (из меню параметров) не могут отображать a флажок или переключатель. Если вы выбрали , выберите пункты меню значков , вы должны указать проверенное состояние, заменив значок и/или текст при каждом изменении состояния .
Вы можете определить отмечаемое поведение для отдельных пунктов меню с помощью андроида: проверяемый атрибут в элементе, или для целой группы с андроида: checkableBehavior атрибут в элементе.Для Например, все элементы в этой группе меню являются проверяемыми с помощью кнопки радио:
> <?xml version="1.0" encoding="utf-8"?>
> <menu
> xmlns:android="http://schemas.android.com/apk/res/android">
> <group android:checkableBehavior="single">
> <item android:id="@+id/red"
> android:title="@string/red" />
> <item android:id="@+id/blue"
> android:title="@string/blue" />
> </group> </menu> The android:checkableBehavior attribute
принимает либо:
одного только один элемент из группы может быть проверен (радио-кнопка) все Все элементов могут быть проверены (флажки) нет Нет элементов подлежит проверке. Вы можете применить состояние проверенного по умолчанию к элементу, используя андроид: проверенный атрибут в и изменить его в коде с помощью метода setChecked().
При выборе проверяемый элемента, система называет свой соответствующий пунктом выбранного метода обратного вызова (например, onOptionsItemSelected()). Здесь необходимо установить флажок , потому что флажок или радио не изменяет свое состояние автоматически. Вы можете запросить текущее состояние элемента (так как оно было до того, как пользователь его выбрал) с isChecked(), а затем установите проверочное состояние с помощью setChecked(). Например:
> @Override public boolean
> onOptionsItemSelected(MenuItem item) {
> switch (item.getItemId()) { case
> R.id.vibrate: case
> R.id.dont_vibrate:
> if (item.isChecked()) item.setChecked(false);
> else item.setChecked(true);
> return true; default:
> return super.onOptionsItemSelected(item); }
> }
Если вы не установите проверенное состояние
этот путь, то видимое состояние из элемента (кнопка флажок или радио ) не изменится, когда пользователь выбирает его. Когда вы устанавливаете состояние, Activity сохраняет зарегистрированное состояние элемента , так что, когда пользователь открывает меню позже, отображается установленное вами состояние , которое вы установили.
Примечание: Checkable пункты меню предназначены для использования только на основе каждого сеанса и не сохраняются после того, как приложение разрушается. Если у вас есть параметры приложения, которые вы хотели бы сохранить для пользователя, вы должны сохранить данные, используя общие Предпочтения.
Я не надувая мой контекстное меню из XML. как я могу это сделать в коде? –
@Sheehan: ответ отредактирован. посмотрите на первую часть. – mhshams
не уверен, если я получу то, что вы имеете в виду. что я установил бы для v.setId()? –