A criação de um radiogroups com mais de três botões de rádio?
-
24-12-2019 - |
Pergunta
Eu estou tentando fazer uma aplicação com questões e cada questão terá 4 opções de resposta (de múltipla escolha), e eu usei 4 botões de rádio para o 4 respostas.existe uma maneira de juntá-las em um radiogroup ou devo lidar com cada botão de rádio individualmente?um grupo de botões de rádio tem apenas 3 botões de rádio, pode aumentar os botões de rádio para mais de três?se sim, então como?
Solução
Você pode obter cada RadioButton de código como :
RadioGroup rg = (RadioGroup )findViewById(R.id.radio_group);
RadioButton r1 = (RadioButton) rg.getChildAt(0);
RadioButton r2 = (RadioButton) rg.getChildAt(1);
RadioButton r3 = (RadioButton) rg.getChildAt(2);
RadioButton r4 = (RadioButton) rg.getChildAt(3);
Sim, você pode adicionar mais de 3 botão de opção no Grupo de botões de Rádio
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="RadioButton" />
<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" />
<RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" />
<RadioButton
android:id="@+id/radio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" />
</RadioGroup>
Outras dicas
Você deve adicionar os botões de rádio para um RadioGroup e, em seguida, o RadioGroup para o layout.
final RadioButton[] rb = new RadioButton[4];
RadioGroup rg = new RadioGroup(this); //create the RadioGroup
rg.setOrientation(RadioGroup.HORIZONTAL);//or RadioGroup.VERTICAL
for(int i=0; i<4; i++){
rb[i] = new RadioButton(this);
rg.addView(rb[i]); //the RadioButtons are added to the radioGroup instead of the layout
rb[i].setText("Test");
}
ll.addView(rg);//you add the whole RadioGroup to the layout
ll.addView(submit);
EDITAR:
ou você pode apenas definir radiogroup no xml:
<TableRow>
<RadioGroup
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/radiobuttons">
</RadioGroup>
</TableRow>
e, em seguida, adicione um botão adicional para ele através de programação:
RadioGroup rg = (RadioGroup) findViewById(R.id.radiobuttons);//not this RadioGroup rg = new RadioGroup(this);
rg.setOrientation(RadioGroup.HORIZONTAL);//or RadioGroup.VERTICAL
for(int i=0; i<4; i++)
{
rb[i] = new RadioButton(this);
rg.addView(rb[i]);
rb[i].setText("Test");
}