Controles RadioButton para Android
Controles RadioButton para Android
Controles RadioButton para Android
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:
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
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) {
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);
@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); }
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"
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;