Tenemos los controles de opciones, entre ellos el Spinner, el CheckBox y el RadioButton.
3.8.1 Spinner
El Spinner es un ComboBox que podemos llenar de un ArrayList y un ArrayAdapter para dar formato a las opciones.
<Spinner android:id="@+id/CmbOpciones" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="15dp" android:paddingTop="15dp"></Spinner>
Con el evento onItemSelected podemos obtener la posición seleccionada.
ArrayList<String> ArregloOpciones = new ArrayList<String>(); String [] Opciones = new String[] {"", "Clientes", "Proveedores", "Articulos"}; Collections.addAll(ArregloOpciones, Opciones); ArrayAdapter<String> ListaSpinner = new ArrayAdapter<String>(getApplicationContext(), R.layout.spinner_item, R.id.TxtSpinerItem,ArregloOpciones); CmbOpciones.setAdapter(ListaSpinner); CmbOpciones.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parentView,View selectedItemView, int position, long id) { CmbCatalogo = parentView.getItemAtPosition(position).toString(); } public void onNothingSelected(AdapterView<?> parentView) { } });
Para poder dar formato a los Items de nuestro Spinner necesitamos un Layout aparte, en este caso lo llamamos spinner_item
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/TxtSpinerItem" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5dp" android:textColor="#000000" android:textSize="20dp" /> </LinearLayout>
3.8.2 Checkbox
El CheckBox son una lista de opciones que se agregan de forma individual y que se pueden elegir más de una.
<CheckBox android:id="@+id/ChkRuta1" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="15dp" android:paddingTop="15dp" android:text="Ruta Lunes"/>
El CheckBox nos regresa un valor booleano (verdadero o falso) según este seleccionado o no.
boolean Ruta = ChkRutaLunes.isChecked(); //Toma el valor del CheckBox ChkRutaLunes.setChecked(true); //Le asigna valor al CheckBox
Para ejecutar una función cuando se seleccione el CheckBox lo hacemos con el evento setOncheckedChangeListener
ChkRutaLunes.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Toast.makeText(OoptionsActivity.this, "Lunes", Toast.LENGTH_SHORT).show(); } } );
3.8.3 RadioButton
El RadioButton son una lista de opciones que se agregan mediante un RadioGroup y dentro iran todos los RadioButton que queramos, sabiendo que de este grupo sólo se podrá elegir una sola opción ya que cuando se seleccione otra la que estaba seleccionada se desactivará.
<RadioGroup android:id="@+id/RadioGrupo" android:layout_width="match_parent" android:layout_height="wrap_content"> <RadioButton android:id="@+id/RadioCrear" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="15dp" android:paddingTop="15dp" android:text="Crear"/> <RadioButton android:id="@+id/RadioConsultar" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="15dp" android:paddingTop="15dp" android:text="Consultar"/> <RadioButton android:id="@+id/RadioEliminar" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="15dp" android:paddingTop="15dp" android:text="Eliminar"/> </RadioGroup>
Una vez declarados los RadioButton y el RadioGroup, en este ultimo usamos el evento setOnChekedChangeListener para poder realizar una acción según el RadioButton que se haya seleccionado, en este caso llenamos la variable RadioAcciones con un valor de acuerdo a lo seleccionado.
RadioOpciones.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.RadioCrear: RadioAcciones = "Crear"; break; case R.id.RadioConsultar: RadioAcciones = "Consultar"; break; case R.id.RadioEliminar: RadioAcciones = "Eliminar"; break; } } });