CheckBox

De MediaWiki
Saltar a: navegación, buscar

Introdución

  • Un CheckBox permite ao usuario elixir unha ou máis opcións dentro dun conxunto.

00 checkboxes.png

  • Este control ao igual que ToggleButton e Switch herda da clase CompoundButton, quen, á súa vez, herda da clase Button.

00 Part of Android View Hierarchy.png



  • Por tanto, funcionan da mesma maneira, pero ademais este control:
    • Ten 2 estados (True/False), que podemos comprobar co método isChecked ().


  • Para xestionar os eventos podemos facelo da mesma forma que nos botóns.


  • Para usalo nun XML layout usar a etiqueta <CheckBox/>


Caso práctico

Se non o temos creado antes, crea un paquete de nome UI como un subpaquete do teu paquete principal.
Dentro do paquete UI, crearemos un novo paquete de nome: Checkboxes.



  • Dentro do paquete Checkboxes crear unha nova 'Empty Activity' de nome: UD02_01_CkeckBox de tipo Launcher e sen compatibilidade.
Modifica o arquivo AndroidManifiest.xml e engade unha label á activity como xa vimos na creación do proxecto base.


  • Imos crear unha aplicación na que o usuario indique as súas afeccións ("Aficiones").



Layout xml

  • Nota: Lembrar que o deseño pódese facer graficamente dende o Android Studio.
  • Cada CheckBox chama a un método cando se marca ou desmarca ese CheckBox.
  • O método é o mesmo para os tres.
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:orientation="vertical" >
  6.  
  7.     <CheckBox
  8.         android:id="@+id/chkInformatica_UD02_01_check"
  9.         android:layout_width="wrap_content"
  10.         android:layout_height="wrap_content"
  11.         android:onClick="controlarAfeccions"
  12.         android:text="Informática" />
  13.  
  14.     <CheckBox
  15.         android:id="@+id/chkLer_UD02_01_check"
  16.         android:layout_width="wrap_content"
  17.         android:layout_height="wrap_content"
  18.         android:onClick="controlarAfeccions"
  19.         android:text="Ler" />
  20.  
  21.     <CheckBox
  22.         android:id="@+id/chkDeporte_UD02_01_check"
  23.         android:layout_width="wrap_content"
  24.         android:layout_height="wrap_content"
  25.         android:onClick="controlarAfeccions"
  26.         android:text="Deportes" />
  27.  
  28.     <EditText
  29.         android:id="@+id/txtResultado_UD02_01_check"
  30.         android:layout_width="match_parent"
  31.         android:layout_height="wrap_content"
  32.         android:hint="Resultado" />
  33.  
  34. </LinearLayout>


Código Java

  1. package es.cursoandroid.cifprodolfoucha.aprendiendo.UI.CheckBoxes;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.widget.CheckBox;
  7. import android.widget.EditText;
  8.  
  9. import es.cursoandroid.cifprodolfoucha.aprendiendo.R;
  10.  
  11. public class UD02_01_CkeckBox extends Activity {
  12.  
  13.     public void controlarAfeccions(View view) {
  14.         CheckBox check = (CheckBox) view;
  15.  
  16.         EditText caixa = (EditText) findViewById(R.id.txtResultado_UD02_01_check);
  17.         if (check.isChecked())
  18.             caixa.setText("Marcaches: "  + check.getText());
  19.         else
  20.             caixa.setText("Desmarcaches: "  + check.getText());
  21.     }
  22.  
  23.     @Override
  24.     protected void onCreate(Bundle savedInstanceState) {
  25.         super.onCreate(savedInstanceState);
  26.         setContentView(R.layout.activity_ud02_01__ckeck_box);
  27.     }
  28. }
  • Liña 13, recibimos a Vista do elemento pulsado hai que facer un casting para convertelo ao tipo CheckBox.
  • Liña 17, comprobamos se se marcou ou desmarcou o control.


Nota: Nos vosos proxectos ides controlar a xestión de eventos implementando a interface na activity.




-- Ángel D. Fernández González e Carlos Carrión Álvarez -- (2015).