Diferencia entre revisiones de «CheckBox»

De MediaWiki
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==
−
*Creamos un novo proxecto: '''U2_10_CheckBox'''
+
 
 +
* 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:Android_2013_U2_10_CheckBox_01.jpg| Ao entrar na aplicación non hai ningunha marcada.  
+
Image:PDM_checkbox_1.jpg | Ao entrar na aplicación non hai ningunha marcada.  
−
Image:Android_2013_U2_10_CheckBox_02.jpg| Cando se selecciona unha afección aparece unha mensaxe nunha caixa de texto indicando o que se seleccionou.
+
Image:PDM_checkbox_2.jpg | Cando se selecciona unha afección aparece unha mensaxe nunha caixa de texto indicando o que se seleccionou.
−
Image:Android_2013_U2_10_CheckBox_03.jpg| Cando se deselecciona unha afección aparece unha mensaxe nunha caixa de texto indicando o que se deseleccionou.  
+
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/chk_informatica"
+
         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/chk_ler"
+
         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/chk_deporte"
+
         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/txt_resultado"
+
         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="25-33">
+
<syntaxhighlight lang="java" line highlight="13-21">
−
package com.example.u2_10_checkbox;
+
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.Menu;
 
 
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 U2_10_CheckBox extends Activity {
+
import es.cursoandroid.cifprodolfoucha.aprendiendo.R;
 +
 
 +
public class UD02_01_CkeckBox extends Activity {
  
−
@Override
+
    public void controlarAfeccions(View view) {
−
protected void onCreate(Bundle savedInstanceState) {
+
        CheckBox check = (CheckBox) view;
−
super.onCreate(savedInstanceState);
 
−
setContentView(R.layout.activity_u2_10__check_box);
 
−
}
 
  
−
@Override
+
        EditText caixa = (EditText) findViewById(R.id.txtResultado_UD02_01_check);
−
public boolean onCreateOptionsMenu(Menu menu) {
+
        if (check.isChecked())
−
// Inflate the menu; this adds items to the action bar if it is present.
+
            caixa.setText("Marcaches: "  + check.getText());
−
getMenuInflater().inflate(R.menu.u2_10__check_box, menu);
+
        else
−
return true;
+
            caixa.setText("Desmarcaches: "  + check.getText());
−
}
+
    }
  
−
public void controlarAfeccions(View view) {
+
    @Override
−
CheckBox check = (CheckBox) view;
+
    protected void onCreate(Bundle savedInstanceState) {
−
+
        super.onCreate(savedInstanceState);
−
EditText caixa = (EditText) findViewById(R.id.txt_resultado);
+
        setContentView(R.layout.activity_ud02_01__ckeck_box);
−
if (check.isChecked())
+
    }
−
caixa.setText("Marcaches: "  + check.getText());
 
−
else
 
−
caixa.setText("Desmarcaches: "  + check.getText());
 
−
}
 
 
}
 
}
 +
 
</syntaxhighlight>
 
</syntaxhighlight>
−
*'''Liña 25''', recibimos a Vista do elemento pulsado hai que facer un casting para convertelo ao tipo CheckBox.
+
*'''Liña 13''', 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.
+
*'''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.

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