Utilizar RadioGroup y RadioButton

En este post nuestro objetivo sera la implementación de un programa que requiera controles de tipo RadioButton para seleccionar una actividad. Aprenderemos como agrupar un conjunto de RadioButton y verificar cual está seleccionado.

Problema:

Realizar la carga de dos números en controles de tipo EditText. Mostrar un mensaje que solicite la carga de los valores. Disponer dos controles de tipo RadioButton para seleccionar si queremos sumar o restar dichos valores. Finalmente mediante un control de tipo Button efectuamos la operación respectiva. Mostramos el resultado en un TextView.
Para disponer los controles de tipo RadioButton debemos en realidad primero insertar un control de tipo RadioGroup (este control se encuentra en la paleta de componentes en la pestaña Form Widgets):

Cuando arrastramos el control RadioGroup al formulario se generan automáticamente 3 objetos de la clase RadioButton contenidos dentro del RadioGroup, podemos fácilmente identificar que los controles RadioButton pertenecen a dicho RadioGroup viendo la ventana de “Outline” del Eclipse (donde nos muestra todos los controles insertados hasta el momento):
Nuestro problema solo requiere dos controles de tipo RadioButton. Para borrarlo lo podemos hacer directamente del formulario seleccionándolo y presionando la tecla delete o seleccionándolo desde la ventana “Outline” y luego presionando la tecla delete
.
Ahora a los dos controles de tipo RadioButton definimos sus id (los llamaremos rbSuma y rbResta respectivamente)
Cambiamos sus propiedades text por los textos “sumar” y “restar”.
No olvidemos también cambiar los id de los controles EditText por txtNum1 y txtNum2 (igual que en el problema anterior)
Por último agreguemos un botón y un TextView para mostrar el resultado
Inicializamos las propiedades del botón con los valores:
  id : btnResultado
  text : OK
Y el tercer TextView con los valores:
  id : txtResultado
Si nuestro problema requería más de 3 RadioButton deberíamos arrastrar dentro del RadioGroup otros controles de tipo RadioButton que se encuentran también en la pestaña de “Form Widgets”

Captura del evento clic del button e identifiación del RadioButton seleccionado.
El código fuente de la clase MaintActivity.java es:

package com.cespedes.radiobg;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;

public class MainActivity extends Activity {

EditText numero1;
EditText numero2;
TextView resultado;
RadioButton suma;
RadioButton resta;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

numero1=(EditText)findViewById(R.id.txtNum1);
numero2=(EditText)findViewById(R.id.txtNum2);
resultado=(TextView)findViewById(R.id.txtResultado);
suma=(RadioButton)findViewById(R.id.rbSuma);
resta=(RadioButton)findViewById(R.id.rbResta);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

public void Operar(View view){
String valor1=numero1.getText().toString();
String valor2=numero2.getText().toString();
int nro1=Integer.parseInt(valor1);
int nro2=Integer.parseInt(valor2);
if (suma.isChecked()==true) {
int suma=nro1+nro2;
String resu=String.valueOf(suma);
resultado.setText(resu);
} else
if (resta.isChecked()==true) {
int resta=nro1-nro2;
String resu=String.valueOf(resta);
resultado.setText(resu);
}

}

}

El resultado final seria como la siguiente imagen.

0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *