You are on page 1of 9

Aplicaciones Mviles Ing.

Karina Cruz Oscanoa

Controles RadioButton
Un radiobutton puede estar marcado o desmarcado, pero en este caso suelen utilizarse dentro de un grupo de opciones donde una, y slo una, de ellas debe estar marcada obligatoriamente, es decir, que si se marca una de ellas se desmarcar automticamente la que estuviera activa anteriormente. En Android, un grupo de botonesradiobutton se define mediante un elemento RadioGroup, que a su vez contendr todos los elementos RadioButton necesarios. Veamos un ejemplo de cmo definir un grupo de dos controles radiobutton en nuestra interfaz que se encuentran dentro de la carpeta widget:

Generando un cdigo XML :


<RadioGroup android:id="@+id/gboperadores" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignRight="@+id/res" android:layout_below="@+id/res" android:layout_marginLeft="31dp" android:layout_marginTop="32dp" > <RadioButton android:id="@+id/rbsuma" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="false" android:text="Suma" /> <RadioButton android:id="@+id/rbresta" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Resta" /> <RadioButton android:id="@+id/rbmultiplicacion"

Aplicaciones Mviles Ing. Karina Cruz Oscanoa


android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Multiplicacin" /> <RadioButton android:id="@+id/rbdivision" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Divisin" /> </RadioGroup>

Una vez definida la interfaz podremos manipular el control desde nuestro cdigo java haciendo uso de los diferentes mtodos del control RadioGroup, los ms importantes: check(id) para marcar una opcin determinada mediante su ID, clearCheck() para desmarcar todas las opciones, y getCheckedRadioButtonId() que como su nombre indica devolver el ID de la opcin marcada (o el valor -1 si no hay ninguna marcada). Veamos un ejemplo:
RadioGroup grupoperadores = (RadioGroup)findViewById(R.id.gboperadores); grupoperadores.clearCheck() grupoperadores. (R.id.radio1); int idSeleccionado = grupoperadores.getCheckedRadioButtonId(); grupoperadores.setOnCheckedChangeListener(rglistener);//para que eschuche // el llamado del click rg.check(R.id.radio1);// para marcar una opcin determinada

Para el llamado de cada RadioButton del RadioGroup tenemos que programas:


private { { String valor1=ennum1.getText().toString(); String valor2=ennum2.getText().toString(); a=Integer.parseInt(valor1); b=Integer.parseInt(valor2); if (checkedId==R.id.rbsuma) { respuesta=a+b; mirespuesta.setText("la respuesta es: "+respuesta); } else if (checkedId==R.id.rbresta) { respuesta=a-b; mirespuesta.setText("la respuesta es: "+respuesta); } else if (checkedId==R.id.rbmultiplicacion) { respuesta=a*b; mirespuesta.setText("la respuesta es: "+respuesta); } else if (checkedId==R.id.rbdivision) { respuesta=a/b; mirespuesta.setText("la respuesta es: "+respuesta); } OnCheckedChangeListener rglistener=new OnCheckedChangeListener() public void onCheckedChanged(RadioGroup group, int checkedId)

Aplicaciones Mviles Ing. Karina Cruz Oscanoa


} }; El programa completo para realizar las cuatro operaciones bsicas usando Radio Btutton es: 4 TextView 2 EdtiText y un RadioGroup.

El programa Completo es:


import import import import import import import android.app.Activity; android.os.Bundle; android.view.Menu; android.widget.EditText; android.widget.RadioGroup; android.widget.RadioGroup.OnCheckedChangeListener; android.widget.TextView;

public class MainActivity extends Activity { private int a, b, respuesta; private TextView mirespuesta; private EditText ennum1,ennum2; private RadioGroup grupoperadores; int idSeleccionado; private OnCheckedChangeListener rglistener=new OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedId) { String valor1=ennum1.getText().toString(); String valor2=ennum2.getText().toString(); a=Integer.parseInt(valor1); b=Integer.parseInt(valor2); if (checkedId==R.id.rbsuma) { respuesta=a+b; mirespuesta.setText("la respuesta es: "+respuesta); } else if (checkedId==R.id.rbresta) {

Aplicaciones Mviles Ing. Karina Cruz Oscanoa


respuesta=a-b; mirespuesta.setText("la respuesta es: "+respuesta); } else if (checkedId==R.id.rbmultiplicacion) { respuesta=a*b; mirespuesta.setText("la respuesta es: "+respuesta); } else if (checkedId==R.id.rbdivision) { respuesta=a/b; mirespuesta.setText("la respuesta es: "+respuesta); } } }; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); grupoperadores = (RadioGroup)findViewById(R.id.gboperadores); grupoperadores.clearCheck(); grupoperadores.setOnCheckedChangeListener(rglistener); ennum1=(EditText)findViewById(R.id.num1); ennum2=(EditText)findViewById(R.id.num2); mirespuesta=(TextView) findViewById(R.id.res); } En el ejercicio anterior el radiobutton obedece al llamado del click, pero en el siguiente ejercicio el radiobutton sirverpara seleccionar ciertos valores ara luego proceder a realizar los clculos mediante el button. En el siguiente activity calcula el sueldo de los trabajadores en base a las horas totales trabajadas (dato que se debe ingresar), las horas extra que trabajo (Dato que debe ingresar) y el costo por hora que vara segn la categora del trabajador; Este costo se deber escoger de los radiobutton configurados en el activity. Para este activity necesita 4 TextView (no es necesario colocar su ID), 1 RadioGroup, 2 EditText, 1 Button.

Aplicaciones Mviles Ing. Karina Cruz Oscanoa

Agregar las siguientes libreras import android.widget.*; import android.view.View.OnClickListener; import android.view.*; Declarar las variables a nivel de clase private EditText horas_trabajadas, horas_extras; private Button botoncalcular; private RadioGroup grupo_cat; private RadioButton r240,r110,r80; Double sueldo_total; String categoria; Programamos el evento Listener con su evento click, y observar aqu que los radiobuttons no se implementa el evento click, pero en vez del evento click, se usa su propiedad isChecked. private OnClickListener btnlistener=new OnClickListener() { public void onClick(View v) { Double HT=Double.parseDouble(horas_trabajadas.getText().toString()); Double HE=Double.parseDouble(horas_extras.getText().toString()); if (r240.isChecked()==true) { sueldo_total=HT*240+HE*260; categoria="Residente"; } else if (r110.isChecked()==true) { sueldo_total=HT*110+HE*130; categoria="Jefe de Taller"; } else if (r80.isChecked()==true) { sueldo_total=HT*80+HE*100; categoria="Jefe de Practica"; } TextView res=(TextView)findViewById(R.id.textView4);

Aplicaciones Mviles Ing. Karina Cruz Oscanoa


res.setText("El sueldo total del "+categoria+" } }; Luego se programa el procedimiento onCreate es "+sueldo_total);

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); horas_trabajadas=(EditText)findViewById(R.id.txtnum_horas); horas_extras=(EditText) findViewById(R.id.txtcosto_hora); botoncalcular=(Button) findViewById(R.id.btncalcular); botoncalcular.setOnClickListener(btnlistener); //trabajamos con el Radio Group y cada radiobutton grupo_cat = (RadioGroup)findViewById(R.id.rgcategorias); grupo_cat.clearCheck(); r240=(RadioButton)findViewById(R.id.rbtresidente); r110=(RadioButton)findViewById(R.id.rbjtaller); r80=(RadioButton)findViewById(R.id.rbjtaller); }

Uso del CheckBox

Un control checkbox se suele utilizar para marcar o desmarcar opciones en una aplicacin, y en Android est representado por la clase del mismo nombre, CheckBox De esta forma, para definir un control de este tipo en nuestro layout podemos utilizar el cdigo siguiente, que define un checkbox con el texto Adems, podremos utilizar la propiedad android:checked para inicializar el estado del control a marcado (true) o desmarcado (false). Si no establecemos esta propiedad el control aparecer por defecto en estado desmarcado. En el cdigo de la aplicacin podremos hacer uso de los mtodos isChecked() para conocer el estado del control, y setChecked(estado) para establecer un estado concreto para el control. if (checkBox.isChecked()) { checkBox.setChecked(false); } En cuanto a los posibles eventos que puede lanzar este control, el ms interesante, al margen del siempre vlido onClick, es sin duda el que informa de que ha cambiado el estado del control, esto se debe implementar en el cdigo XML como se muestra a continuacin <CheckBox android:id="@+id/chkcd" android:layout_width="wrap_content" android:layout_height="wrap_content"

Aplicaciones Mviles Ing. Karina Cruz Oscanoa


android:layout_alignLeft="@+id/textView3" android:layout_below="@+id/textView3" android:text="CD instalador" android:onClick="opciones" /> <CheckBox android:id="@+id/chklibro" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/chkcd" android:layout_below="@+id/chkcd" android:text="Libro - Manual" android:onClick="opciones" /> Desarrolla el siguiente ejercicios para cada hallar la proforma de cursos de extensin que se realizan en in Instituto. Disee el siguiente Activity: un RadioGroup(Con 6 RadioButton), 6 TextView, 4 CheckBox, 1 Button

Esta lnea deber agregar en el XML de cada CheckBox

Realizar la programacin siguiente: import import import import import import import import import import import android.app.Activity; android.graphics.Color; android.os.Bundle; android.view.Menu; android.view.View; android.view.View.OnClickListener; android.widget.Button; android.widget.CheckBox; android.widget.RadioGroup; android.widget.RadioGroup.OnCheckedChangeListener; android.widget.TextView;

public class MainActivity extends Activity { private TextView TXprecio,TXadicionales,TXcurso;

Aplicaciones Mviles Ing. Karina Cruz Oscanoa


private Button botoncalcular; private RadioGroup grupo_curso; private CheckBox cbCD,cblibro,cbmanual,cbmaletin; double matricula=70; double adicionales=0, curso=0,libro=0,cd=0,manua=0,maletin=0,total; private OnCheckedChangeListener rglistener=new OnCheckedChangeListener(){ @Override public void onCheckedChanged(RadioGroup group, int checkedId) { if (checkedId==R.id.rbVB2010){ TXcurso.setText("El costo de Visual Basic 2010: s/"+250); curso=250;} else if (checkedId==R.id.rbflash){ TXcurso.setText("El costo de Flash Macromedia es: s/"+190); curso=190;} else if (checkedId==R.id.rbjava){ TXcurso.setText("El costo de JCreator: s/"+185); curso=185;} else if (checkedId==R.id.android){ TXcurso.setText("El costo de Aplicaciones mviles con Android: s/"+210); curso=210;} else if (checkedId==R.id.rbavideo){ TXcurso.setText("El costo de Audio Effect: s/"+230); curso=230;} else if (checkedId==R.id.rbajoomla){ TXcurso.setText("El costo de Flash Macromedia es: s/"+180); curso=180;} } }; public void opciones(View v) { TXadicionales.setText("Los costos adicionales son"); if (cbCD.isChecked()) { //checked TXadicionales.append("\n Por el CD instalador s/"+25); cd=25;} if (cblibro.isChecked()){ TXadicionales.append("\n por libro S/"+40); libro=40;} if (cbmanual.isChecked()){ TXadicionales.append("\n por Manual Interactivo S/"+20); manua=20;} if (cbmaletin.isChecked()){ TXadicionales.append("\n por maletin S/"+50); maletin=50;} adicionales=libro+manua+maletin+cd; } // listener del boton y su evento click private OnClickListener btnlistener=new OnClickListener() { public void onClick(View v) {TXprecio.setText("El costo de la matricula es S/70"); total=curso+adicionales+matricula; TXprecio.append("\n El costo total del curso es: s/"+total); } };

Aplicaciones Mviles Ing. Karina Cruz Oscanoa


@Override protected void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TXprecio=(TextView)findViewById(R.id.txtprecio); TXprecio.setTextColor(Color.argb(255,250,0,0)); TXprecio.setTextSize(12); TXadicionales =(TextView)findViewById(R.id.txtadicionales); TXadicionales.setTextColor(Color.argb(255,250,0,0)); TXadicionales.setTextSize(12); TXcurso=(TextView)findViewById(R.id.txtcurso); TXcurso.setTextColor(Color.argb(255,250,0,0)); TXcurso.setTextSize(12); botoncalcular=(Button)findViewById(R.id.btncalcular); botoncalcular.setOnClickListener(btnlistener); // grupo_curso=(RadioGroup)findViewById(R.id.rgcurso); grupo_curso.clearCheck(); grupo_curso.setOnCheckedChangeListener(rglistener); // cbCD=(CheckBox)findViewById(R.id.chkcd); cblibro=(CheckBox)findViewById(R.id.chklibro); cbmanual=(CheckBox)findViewById(R.id.chkmanual); cbmaletin=(CheckBox)findViewById(R.id.chkmaletin); }

You might also like