我想在我的上下文菜单中添加单选按钮,但我不确定如何。这就是它的创建方式:
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Selection Options");
menu.add(0, v.getId(), 0, "Remove");
}
答案 0 :(得分:3)
来自您的代码:
menu.add(0, v.getId(), 0, "Remove");
v是一个可以是RadioButton或任何其他类型的视图的视图。
如果您没有使用xml来定义RadioButton。你应该在你的应用程序中设置它的ID。
v.setId();
或者您可以在res / values中定义ids.xml。
samples / ApiDemos / src / com / example / android / apis / RadioGroup1.java samples / ApiDemp / res / values / ids.xml
菜单&上下文菜单开发人员指南:
http://developer.android.com/guide/topics/ui/menus.html
如果您滚动上面的页面,您可以在上下文菜单中找到RadioButton示例。
引用上面的页面:
可检查的菜单项
菜单可用作界面 用于打开和关闭选项,使用 独立选项的复选框,或 互相组的单选按钮 独家选择。图2显示了一个 子菜单包含可检查的项目 用单选按钮。
注意:图标菜单中的菜单项 (从“选项”菜单中)无法显示 复选框或单选按钮。如果你 选择在图标菜单中制作项目 可检查,你必须手动指示 通过交换图标来检查状态 和/或每次状态时发短信 变化。
您可以定义可检查行为 使用的单个菜单项 android:checkable属性中的 元素,或整个组 使用android: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
接受:
单个组中只有一个项目 可以检查(单选按钮)全部全部 可以检查项目(复选框)无 没有可检查的项目您可以申请 默认选中状态为使用的项目 中的android:checked属性 元素并在代码中更改它 使用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); }
> }
如果未设置选中状态
这样,然后是可见状态 项目(复选框或收音机 按钮)在用户时不会改变 选择它。当你设置状态时, 活动保留已选中 物品的状态,以便当 用户稍后打开菜单,选中 您设置的状态是可见的。注意:可检查的菜单项是 仅用于a 每个会话基础而不是保存之后 该应用程序被销毁。如果你 有你的应用程序设置 想为用户保存,你 应该使用Shared存储数据 偏好。
答案 1 :(得分:-1)
RadioButton rBtn1 = new RadioButton(this);
RadioButton rBtn2 = new RadioButton(this);
rBtn1.setText("radio button 1");
rBtn2.setText("radio button 2");
//Add all your RadioButtons the same way.
RadioGroup group = new RadioGroup(this);
group.addView(rBtn1);
group.addView(rBtn2);
menu.add(0, group.getId(), 0, "whatever");
我没试过,但我希望它有效: