Ciao, scusa se ti rispondo adesso ma non mi arrivano le notifiche tramite email, quindi non sapevo avessi risposto
Detto questo, per "disegnare" i radio button ti conviene farlo tramite xml, perché è molto più semplice che non tramite codice.
dovrai, quindi, scrivere all'interno del layout principale qualcosa del tipo
<RadioGroup
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/convertitore">
<RadioButton android:id="@+id/radio_euro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" [imposto questo RadioButton selezionato per default]
android:text="converti in euro"/>
<RadioButton android:id="@+id/radio_lire"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="converti in lire"/>
</RadioGroup>
Per quanto riguarda la gestione del click, invece, dovrai ottenere un riferimento al RadioGroup (attraverso findViewById(R.id.convertitore) ) e poi controllare quale radioButton è stato cliccato
Supponendo che il calcolo debba essere fatto solamente quando l'utente clicca su un pulsante di calcolo, l'intera classe sarà qualcosa del tipo
package com.example.radio;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
private EditText valore;
private RadioGroup convertitore;
private TextView result;
private Button calcola;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
valore = (EditText) findViewById(R.id.valore); //Contiene il valore da convertire
convertitore = (RadioGroup) findViewById(R.id.convertitore); //Il RadioGroup
result = (TextView) findViewById(R.id.result); //Contiene il risultato della conversione
calcola = (Button) findViewById(R.id.btn); //Il pulsante che da inizio alla conversione
calcola.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//Ottengo il valore immesso
double valImmesso = Double.parseDouble(valore.getText().toString());
double valConvertito = Double.NaN; //Imposto un valore iniziale non significativo
//Controllo quale radioButton è selezionato
switch (convertitore.getCheckedRadioButtonId()) {
case R.id.radio_euro:
valConvertito = convertiInEuro(valImmesso);
break;
case R.id.radio_lire:
valConvertito = convertiInLire(valImmesso);
break;
default:
break;
}
result.setText(""+valConvertito);
}
private double convertiInLire(double valore) {
return valore*1936.27;
}
private double convertiInEuro(double valore) {
return valore/1936.27;
}
}
Ovviamente se si preme il pulsante di calcolo senza immettere alcun valore, viene lanciata un'eccezione e l'applicazione va in crash. Bisognerebbe, quindi, gestire questo aspetto! (ad esempio attraverso un try/catch quando si fa il parse del numero)