CheckBox
Revisión del 16:58 15 nov 2020 de Angelfg (discusión | contribuciones)
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:
- Ten 2 estados (True/False), que podemos comprobar co método isChecked ().
- Podemos cambiar o seu estado cambiar o seu estado por programación chamando ao método setChecked(boolean)
- Podemos xestionar o cambio de estado dun CheckBox coa chamada ao método setOnCheckedChangeListener(OnCheckedChangeListener)
- Tamén podemos xestionar os eventos da mesma forma que nos botóns, coa interface OnClickListener.
- 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 1
- 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.
- 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").
- Como aínda non sabemos xestionar os eventos, no método onCreate faremos referencia aos tres checkbox e modificaremos varias propiedades.
Código do Layout:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="cifprodolfoucha.cursoandroid.aprendiendo.UI.Checkboxes.UD02_01_CkeckBox">
<CheckBox
android:id="@+id/chkInformatica"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="Informática"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<CheckBox
android:id="@+id/chkLer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="Ler"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chkInformatica" />
<CheckBox
android:id="@+id/chkDeporte"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="Deportes"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chkLer" />
</androidx.constraintlayout.widget.ConstraintLayout>
Código da Activity:
public class UD02_01_CkeckBox extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_u_d02_01__ckeck_box);
CheckBox checkLer = findViewById(R.id.chkLer); // Obtemos unha referencia ao checbox ler.
Toast.makeText(this,checkLer.getText().toString() + " " + String.valueOf(checkLer.isChecked()),Toast.LENGTH_SHORT).show(); // Amosamos unha mensaxe có seu texto e estado
((CheckBox)findViewById(R.id.chkInformatica)).setChecked(true); // Podemos non crear unha variable para gardar a referencia ao checkbox. Neste caso cambiamos o estado do checbox.
CheckBox chkDeportes = findViewById(R.id.chkDeporte);
chkDeportes.setBackgroundColor(Color.BLUE); // Cambiamos outras propiedades. Podemos cambiar por programación calquera propiedade do deseñador.
chkDeportes.setTextColor(Color.RED);
chkDeportes.setText("NOVA AFICCION");
}
}
Métodos mínimos a coñecer no manexo dos CheckBox
- Referenciar a un CheckBox có método findViewById.
- Recuperar o contido do texto asociado.
- Cambiar o contido do texto, podendo empregar recursos gardados en /res/values.
- Engadir novo texto a un existente.
- Modificar propiedades básicas, como cor, tamaño, visibilidade,...
CheckBox chk = findViewById(R.id.chk_Uno); // Referenciamos a un CheckBox que estea no Layout da Activity
Toast.makeText(getApplicationContext(),chk.getText() + " " + String.valueOf(chk.isChecked()),Toast.LENGTH_LONG).show(); // Obtemos o texto e estado de check con isChecked()
chk.setText("Novo texto Check"); // Cambiamos o texto do check
chk.setChecked(true); // Cambimos o estado de check (on/off) => Lanza o evento anterior por ter o setOnXXX antes
==
Enlace a la página principal de la UD2
Enlace a la página principal del curso
<br /
-- Ángel D. Fernández González e Carlos Carrión Álvarez -- (2015).