RadioButton

De MediaWiki
Saltar a: navegación, buscar

Introdución

  • O control RadioButton permite escoller unha opción entre varias posibles.
  • Aconséllase usar este control sempre que se queiran amosar ao usuario múltiples opcións, unha ao carón doutra.
  • En caso contrario débese usar un Spinner (Lista despregable).
  • No layout os RadioButton organízanse dentro dun RadioGroup que vai controlar que non haxa máis dunha opción marcada.

Radiobuttons.png

  • Nota: polas opcións que ofrece a imaxe, tomada de Android SDK, aí debe traballar un galego.


  • RadioGroup herda da clase LinearLayout co cal terá as súas propiedades, entre elas: android:orientation


  • RadioButton herda da clase CompoundButton ao igual que CheckBox. Por tanto, teremos dispoñible a propiedade android:onCLick.

00 Part of Android View Hierarchy.png


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: RadioButtons.



  • Dentro do paquete RadioButtons crear unha nova 'Empty Activity' de nome: UD02_01_RadioButtons 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 se é ou non maior de idade e que se amose a opción escollida no EditText.



XML do Layout

  • Observar como RadioGroup é un layout máis de tipo Linear.
  • Observar como a primeira opción está activada por defecto.
  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.     <RadioGroup
  8.         android:layout_width="fill_parent"
  9.         android:layout_height="wrap_content"
  10.         android:orientation="vertical" >
  11.  
  12.         <RadioButton
  13.             android:id="@+id/rbtnMaior18_UD02_01_Radio"
  14.             android:layout_width="wrap_content"
  15.             android:layout_height="wrap_content"
  16.             android:checked="true"
  17.             android:onClick="controlarIdade"
  18.             android:text=">18 anos" />
  19.  
  20.         <RadioButton
  21.             android:id="@+id/rbtnMenor18_UD02_01_Radio"
  22.             android:layout_width="wrap_content"
  23.             android:layout_height="wrap_content"
  24.             android:onClick="controlarIdade"
  25.             android:text="&lt;=18 anos" />
  26.     </RadioGroup>
  27.  
  28.     <EditText
  29.         android:id="@+id/txtResultado_UD02_01_Radio"
  30.         android:layout_width="match_parent"
  31.         android:layout_height="wrap_content"
  32.         android:hint="Resultado" />
  33.  
  34. </LinearLayout>



Código Java

  • Implementamos o método controlarIdade
  1. package es.cursoandroid.cifprodolfoucha.aprendiendo.UI.RadioButtons;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.widget.EditText;
  7.  
  8. import es.cursoandroid.cifprodolfoucha.aprendiendo.R;
  9.  
  10. public class UD02_01_RadioButtons extends Activity {
  11.  
  12.     public void controlarIdade(View view) {
  13.  
  14.         EditText caixa = (EditText) findViewById(R.id.txtResultado_UD02_01_Radio);
  15.  
  16.         switch (view.getId()) {
  17.             case R.id.rbtnMaior18_UD02_01_Radio:
  18.                 caixa.setText("Tes máis de 18 anos");
  19.                 break;
  20.             case R.id.rbtnMenor18_UD02_01_Radio:
  21.                 caixa.setText("Tes menos de 18 anos");
  22.                 break;
  23.         }
  24.     }
  25.  
  26.  
  27.     @Override
  28.     protected void onCreate(Bundle savedInstanceState) {
  29.         super.onCreate(savedInstanceState);
  30.         setContentView(R.layout.activity_ud02_01__radio_buttons);
  31.     }
  32. }
  • Liña 16: Indagamos que cal é o ID da opción na que se fixo click.


  • Nota: Este código ten un exercicio asociado no Moodle.




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