CheckBox

De Manuais Informática - IES San Clemente.
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

  • Creamos un novo proxecto: U2_10_CheckBox
  • Imos crear unha aplicación na que o usuario indique as súas afeccións ("Aficiones").


Layout xml

  • Cada CheckBox chama a un método cando se marca ou desmarca ese CheckBox.
  • O método é o mesmo para os tres.
 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     android:orientation="vertical" >
 5 
 6     <CheckBox
 7         android:id="@+id/chk_informatica"
 8         android:layout_width="wrap_content"
 9         android:layout_height="wrap_content"
10         android:onClick="controlarAfeccions"
11         android:text="Informática" />
12 
13     <CheckBox
14         android:id="@+id/chk_ler"
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content"
17         android:onClick="controlarAfeccions"
18         android:text="Ler" />
19 
20     <CheckBox
21         android:id="@+id/chk_deporte"
22         android:layout_width="wrap_content"
23         android:layout_height="wrap_content"
24         android:onClick="controlarAfeccions"
25         android:text="Deportes" />
26 
27     <EditText
28         android:id="@+id/txt_resultado"
29         android:layout_width="match_parent"
30         android:layout_height="wrap_content"
31         android:hint="Resultado" />
32 
33 </LinearLayout>

Código Java

 1 package com.example.u2_10_checkbox;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.view.Menu;
 6 import android.view.View;
 7 import android.widget.CheckBox;
 8 import android.widget.EditText;
 9 
10 public class U2_10_CheckBox extends Activity {
11 
12 	@Override
13 	protected void onCreate(Bundle savedInstanceState) {
14 		super.onCreate(savedInstanceState);
15 		setContentView(R.layout.activity_u2_10__check_box);
16 	}
17 
18 	@Override
19 	public boolean onCreateOptionsMenu(Menu menu) {
20 		// Inflate the menu; this adds items to the action bar if it is present.
21 		getMenuInflater().inflate(R.menu.u2_10__check_box, menu);
22 		return true;
23 	}
24 
25 	public void controlarAfeccions(View view) {
26 		CheckBox check = (CheckBox) view;
27 		
28 		EditText caixa = (EditText) findViewById(R.id.txt_resultado);
29 		if (check.isChecked()) 
30 			caixa.setText("Marcaches: "  + check.getText());
31 		else
32 			caixa.setText("Desmarcaches: "  + check.getText());
33 	}
34 }
  • Liña 25, recibimos a Vista do elemento pulsado hai que facer un casting para convertelo ao tipo CheckBox.
  • Liña 29, comprobamos se se marcou ou desmarcou o control.



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