CheckBox

De MediaWiki
Ir a la navegación Ir a la búsqueda

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).