Diferencia entre revisiones de «CheckBox»
Ir a la navegación
Ir a la búsqueda
(Página creada con «==Introdución== *Un '''CheckBox''' permite ao usuario elixir unha ou máis opcións dentro dun conxunto. Image:00_checkboxes.png *Este control ao igual que ToggleButt...») |
|||
| Línea 25: | Línea 25: | ||
==Caso práctico== | ==Caso práctico== | ||
| − | * | + | |
| + | * Partimos que xa temos creado o proxecto inicial como [http://wiki.cifprodolfoucha.es/index.php?title=PDM_Creando_proxecto_base xa indicamos anteriormente]. | ||
| + | : 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'''. | ||
| + | |||
| + | |||
| + | <br /> | ||
| + | * 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 [http://wiki.cifprodolfoucha.es/index.php?title=PDM_Creando_proxecto_base xa vimos na creación do proxecto base]. | ||
| + | |||
| + | |||
*Imos crear unha aplicación na que o usuario indique as súas afeccións ("Aficiones"). | *Imos crear unha aplicación na que o usuario indique as súas afeccións ("Aficiones"). | ||
<gallery caption="CheckBox" widths="350" heights="300px" perrow="2"> | <gallery caption="CheckBox" widths="350" heights="300px" perrow="2"> | ||
| − | Image: | + | Image:PDM_checkbox_1.jpg | Ao entrar na aplicación non hai ningunha marcada. |
| − | Image: | + | Image:PDM_checkbox_2.jpg | Cando se selecciona unha afección aparece unha mensaxe nunha caixa de texto indicando o que se seleccionou. |
| − | Image: | + | Image:PDM_checkbox_3.jpg | Cando se deselecciona unha afección aparece unha mensaxe nunha caixa de texto indicando o que se deseleccionou. |
</gallery> | </gallery> | ||
| + | <br /> | ||
===Layout xml=== | ===Layout xml=== | ||
| + | |||
| + | * <u>Nota:</u> 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. | *Cada '''CheckBox''' chama a un método cando se marca ou desmarca ese CheckBox. | ||
| Línea 42: | Línea 55: | ||
<syntaxhighlight lang="xml" line highlight="11,18,25"> | <syntaxhighlight lang="xml" line highlight="11,18,25"> | ||
| + | <?xml version="1.0" encoding="utf-8"?> | ||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||
| Línea 48: | Línea 62: | ||
<CheckBox | <CheckBox | ||
| − | android:id="@+id/ | + | android:id="@+id/chkInformatica_UD02_01_check" |
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||
| Línea 55: | Línea 69: | ||
<CheckBox | <CheckBox | ||
| − | android:id="@+id/ | + | android:id="@+id/chkLer_UD02_01_check" |
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||
| Línea 62: | Línea 76: | ||
<CheckBox | <CheckBox | ||
| − | android:id="@+id/ | + | android:id="@+id/chkDeporte_UD02_01_check" |
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||
| Línea 69: | Línea 83: | ||
<EditText | <EditText | ||
| − | android:id="@+id/ | + | android:id="@+id/txtResultado_UD02_01_check" |
android:layout_width="match_parent" | android:layout_width="match_parent" | ||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||
| Línea 77: | Línea 91: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | <br /> | ||
===Código Java=== | ===Código Java=== | ||
| − | <syntaxhighlight lang="java" line highlight=" | + | <syntaxhighlight lang="java" line highlight="13-21"> |
| − | package | + | package es.cursoandroid.cifprodolfoucha.aprendiendo.UI.CheckBoxes; |
import android.app.Activity; | import android.app.Activity; | ||
import android.os.Bundle; | import android.os.Bundle; | ||
| − | |||
import android.view.View; | import android.view.View; | ||
import android.widget.CheckBox; | import android.widget.CheckBox; | ||
import android.widget.EditText; | import android.widget.EditText; | ||
| − | public class | + | import es.cursoandroid.cifprodolfoucha.aprendiendo.R; |
| + | |||
| + | public class UD02_01_CkeckBox extends Activity { | ||
| − | + | public void controlarAfeccions(View view) { | |
| − | + | CheckBox check = (CheckBox) view; | |
| − | |||
| − | |||
| − | |||
| − | + | EditText caixa = (EditText) findViewById(R.id.txtResultado_UD02_01_check); | |
| − | + | if (check.isChecked()) | |
| − | + | caixa.setText("Marcaches: " + check.getText()); | |
| − | + | else | |
| − | + | caixa.setText("Desmarcaches: " + check.getText()); | |
| − | + | } | |
| − | + | @Override | |
| − | + | protected void onCreate(Bundle savedInstanceState) { | |
| − | + | super.onCreate(savedInstanceState); | |
| − | + | setContentView(R.layout.activity_ud02_01__ckeck_box); | |
| − | + | } | |
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
| + | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | *'''Liña | + | *'''Liña 13''', recibimos a Vista do elemento pulsado hai que facer un casting para convertelo ao tipo CheckBox. |
| − | *'''Liña | + | *'''Liña 17''', comprobamos se se marcou ou desmarcou o control. |
| + | |||
| + | |||
| + | |||
| + | '''<u>Nota:</u>''' Nos vosos proxectos ides controlar a xestión de eventos implementando a interface na activity. | ||
| + | |||
| + | |||
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] e [[Usuario:Carrion|Carlos Carrión Álvarez]] -- (2015). | <br> -- [[Usuario:angelfg|Ángel D. Fernández González]] e [[Usuario:Carrion|Carlos Carrión Álvarez]] -- (2015). | ||
Revisión del 09:50 6 oct 2018
Introdución
- Un CheckBox permite ao usuario elixir unha ou máis opcións dentro dun conxunto.
- Este control ao igual que ToggleButton e Switch herda da clase CompoundButton, quen, á súa vez, herda da clase Button.
- Imaxe obtida de: http://www.itcsolutions.eu/2011/08/27/android-tutorial-4-procedural-vs-declarative-design-of-user-interfaces
- 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/>
- Referencias:
- O control CheckBox: http://developer.android.com/reference/android/widget/CheckBox.html
- Introdución ao CheckBox: http://developer.android.com/guide/topics/ui/controls/checkbox.html
Caso práctico
- Partimos que xa temos creado o proxecto inicial como xa indicamos anteriormente.
- 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").
- CheckBox
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).
