You are on page 1of 7

Controles RadioGroup y

RadioButton
El objetivo de este concepto es practicar la implementacin de un programa que requiera controles de tipo
Aprenderemos como agrupar un conjunto de RadioButton y verificar cual est seleccionado.

Problema:

Realizar la carga de dos nmeros en controles de tipo EditText. Mostrar un mensaje que solicite la carga de
RadioButton para seleccionar si queremos sumar o restar dichos valores. Finalmente mediante un control d
Mostramos el resultado en un TextView.

El problema es similar al anterior. Para disponer los controles de tipo RadioButton debemos en realidad pr
control se encuentra en la paleta de componentes en la pestaa Form Widgets):

Cuando arrastramos el control RadioGroup al formulario se generan automticamente 3 objetos de la clase


podemos fcilmente identificar que los controles RadioButton pertenecen a dicho RadioGroup viendo la ve
todos los controles insertados hasta el momento):

Nuestro problema solo requiere dos controles de tipo RadioButton. Para borrarlo lo podemos hacer directa
la tecla delete o seleccionndolo desde la ventana "Outline" y luego presionando la tecla delete
.

Ahora a los dos controles de tipo RadioButton definimos sus id (los llamaremos r1 y r2 respectivamente)
Cambiamos sus propiedades text por los textos "sumar" y "restar".

No olvidemos tambin cambiar los id de los controles EditText por et1 y et2 (igual que en el problema ante

Por ltimo agreguemos un botn y un TextView para mostrar el resultado


Inicializamos las propiedades del botn con los valores:
id : button1
text : operar

Y el tercer TextView con los valores:


id : tv3
text : resultado

Podemos controlar en la ventana "Outline" el id definido para cada control (tv1, et1, tv2, et2, radioGroup1,
Tambin podemos observar de que clase es cada control visual y el texto de la propiedad text para aquellos

Si nuestro problema requera ms de 3 RadioButton deberamos arrastrar dentro del RadioGroup otros con
en la pestaa de "Form Widgets"

Captura del evento clic del button e identifiacin del RadioButton sele
El cdigo fuente de la clase MaintActivity es:
package com.javaya.proyecto003;
import android.app.Activity;
import android.os.Bundle;

import
import
import
import
import

android.view.Menu;
android.view.View;
android.widget.EditText;
android.widget.RadioButton;
android.widget.TextView;

public class MainActivity extends Activity {


private EditText et1,et2;
private TextView tv3;
private RadioButton r1,r2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1=(EditText)findViewById(R.id.et1);
et2=(EditText)findViewById(R.id.et2);
tv3=(TextView)findViewById(R.id.tv3);
r1=(RadioButton)findViewById(R.id.r1);
r2=(RadioButton)findViewById(R.id.r2);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
//Este mtodo se ejecutar cuando se presione el botn
public void operar(View view) {
String valor1=et1.getText().toString();
String valor2=et2.getText().toString();
int nro1=Integer.parseInt(valor1);
int nro2=Integer.parseInt(valor2);
if (r1.isChecked()==true) {
int suma=nro1+nro2;
String resu=String.valueOf(suma);
tv3.setText(resu);
} else
if (r2.isChecked()==true) {
int resta=nro1-nro2;
String resu=String.valueOf(resta);
tv3.setText(resu);
}
}
}

Primero debemos enlazar el objeto button1 con el mtodo operar. Para esto similar al problema anterior sel
propiedad OnClick por el valor operar (si no hacemos esto nunca se ejecutar el mtodo operar de la clase
Como podemos ver el cdigo fuente es igual al problema anterior. Tenemos dos objetos ms que debemos
r1=(RadioButton)findViewById(R.id.r1);
r2=(RadioButton)findViewById(R.id.r2);

Las variables r1 y r2 son de la clase RadioButton y son necesarios en el mtodo operar para verificar cual d
RadioButton tiene un mtodo llamado isChecked que retorna true si dicho elemento est seleccionado:
public void operar(View view) {
String valor1=et1.getText().toString();
String valor2=et2.getText().toString();
int nro1=Integer.parseInt(valor1);
int nro2=Integer.parseInt(valor2);
if (r1.isChecked()==true) {
int suma=nro1+nro2;
String resu=String.valueOf(suma);
tv3.setText(resu);
} else
if (r2.isChecked()==true) {
int resta=nro1-nro2;
String resu=String.valueOf(resta);
tv3.setText(resu);
}
}

Este proyecto lo puede descargar en un zip desde este enlace