如何只设置一个RadioButton可以在RadioGroup中select

我在radiogroup中创build了一个单选button,但是当我尝试运行应用程序时,所有的单选button都可以一直选中,一次只能select一个单选button。

我正在使用片段

RadioGroup radioGroup = (RadioGroup) rootView.findViewById(R.id.RGroup); radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // find which radio button is selected if(checkedId == R.id.Abdominal) { Toast.makeText(getActivity().getApplicationContext(), "choice: A", Toast.LENGTH_SHORT).show(); } else if(checkedId == R.id.Arm) { Toast.makeText(getActivity().getApplicationContext(), "choice: B", Toast.LENGTH_SHORT).show(); } else if(checkedId == R.id.Back){ Toast.makeText(getActivity().getApplicationContext(), "choice: C", Toast.LENGTH_SHORT).show(); } else if(checkedId == R.id.Chest){ Toast.makeText(getActivity().getApplicationContext(), "choice: D", Toast.LENGTH_SHORT).show(); } else if(checkedId == R.id.Leg){ Toast.makeText(getActivity().getApplicationContext(), "choice: E", Toast.LENGTH_SHORT).show(); } else if(checkedId == R.id.Shoulder){ Toast.makeText(getActivity().getApplicationContext(), "choice: F", Toast.LENGTH_SHORT).show(); } } }); 

这里是我的RG和RB的XML代码

 <RadioGroup android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/RGroup"> <TableRow android:weightSum="1"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Abdominal" android:id="@+id/Abdominal"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Arm" android:id="@+id/Arm"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Back" android:id="@+id/Back" /> </TableRow> <TableRow> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Chest" android:id="@+id/Chest"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Leg" android:id="@+id/Leg"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Shoulder" android:id="@+id/Shoulder"/> </TableRow> </RadioGroup> 

编辑1 :答:如果你不想单选button可以在一次select,所以不要使用Tablerow

Solutions Collecting From Web of "如何只设置一个RadioButton可以在RadioGroup中select"

由于RadioGroup内部的TableRow,它不工作。 由于它们之间的TableRow,所有RadioButtons不分组在一起。

RadioButton应该是RadioGroup的直接子节点,否则分组不起作用。

只要改变你的代码就可以了:

  <RadioGroup android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/RGroup"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Abdominal" android:id="@+id/Abdominal"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Arm" android:id="@+id/Arm"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Back" android:id="@+id/Back" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Chest" android:id="@+id/Chest"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Leg" android:id="@+id/Leg"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Shoulder" android:id="@+id/Shoulder"/> </RadioGroup> 

希望这可以帮助。 🙂

  <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:id="@+id/radioGroup"> <RadioButton android:layout_width="0dp" android:layout_weight="50" android:layout_height="wrap_content" android:text="Debit" android:id="@+id/rDebit" android:checked="false" /> <RadioButton android:layout_width="0dp" android:layout_weight="50" android:layout_height="wrap_content" android:text="Credit" android:id="@+id/rCredit" android:checked="false" /> </RadioGroup> 

并在java文件中

  RadioGroup radioGroup; radioGroup = (RadioGroup) findViewById(R.id.radioGroup); 

什么时候做点什么

  if (radioGroup.getCheckedRadioButtonId() == R.id.rCredit) { // do something } 

简单的方法。 点击单选button。 按照下面的代码进行编码。

 public void clearRadioChecked() { rdopa.setChecked(false); rdopb.setChecked(false); rdopc.setChecked(false); rdopd.setChecked(false); } 

如果你想selectrdopa然后点击rdopa做如下。

 clearRadioChecked() rdopa.setChecked(true);