26 Come usare i RadioButton

In questo articolo dopo aver visto un pò di teoria su RadioButton e RadioGroup vediamo ome usarli nella pratica all’interno di un’applicazione.
Innanzitutto li andiamo ad inserire nel xml layout e avremo il seguente codice:

<RadioGroup
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New RadioButton"
        android:id="@+id/radioButton"/>
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New RadioButton2"
        android:id="@+id/radioButton2"/>
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New RadioButton3"
        android:id="@+id/radioButton3"/>
</RadioGroup>

Ovviamente il codice che vi trovate davanti potrebbe anche essere leggermente diverso.
Sullo schermo avrete quindi 3 RadioButton e l’utente potrà selezionarne solo uno per volta.
Per leggere runtime quale RadioButton ha selezionato l’utente utiliziamo le seguenti righe di codice Java:

RadioButton b=(RadioButton)findViewById(R.id.radioButton);
b.isChecked();

La prima riga è sempre la stessa che abbiamo usato con gli altri oggetti. Con la seconda riga verifichiamo se l’utente ha selezionato il RadioButton con l’ID “radioButton”.
(A scopo didattico, per vedere se funziona, potete mettere anche un Button che se cliccato modifichi una TextView con 3 testi differenti in base al RadioButton selezionato).
A questo punto vi starete chiedendo come trattare in maniera comoda un insieme di RadioButton per non creare n variabili diverse con altrettanti if.
Una possibile soluzione potrebbe essere creare un vettore di RadioButton e salvare in ogni cella un puntatore ai diversi RadioButton che avete all’inizio del vostro programma. Poi scorrete il vettore per vedere quale RadioButton è stato selezionato.

//salvo con questo codice tutti i radio button all'interno di un vettore
//posso farlo nel main subito dopo setContentView
//n=numero di radiobutton
RadioButton [] vettore=new RadioButton(n);
vettore[0]=RadioButton b=(RadioButton)findViewById(R.id.radioButton);
vettore[1]=RadioButton b=(RadioButton)findViewById(R.id.radioButton2);
//...
vettore[n]=RadioButton b=(RadioButton)findViewById(R.id.radioButtonN);

//con questo codice cerco quale radio button è selezionato controllando
//uno ad uno tutti i radio button salvati nel vettore
int selezionato;
for(int i=0;i<n;i++)
{
	if(vettore[i].isChecked())
	{
		selezionato=i;//salvo l'indice del radiobutton selezionato
		break;//esco dal ciclo
	}
}

Questo è solo un metodo di risoluzione, giusto per darvi un idea.
Per dubbi o se volete sapere qualcos’altro riguardo i RadioButton o nuovi oggetti di cui volete che faccia le guida scrivetemi pure nei commenti e sarò felice di rispondervi.
Alla prossima!

Please follow and like us: