Diferencia entre revisiones de «RadioButton»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 39: Línea 39:
  
 
<gallery caption="RadioButton" widths="350" heights="300px" perrow="2">
 
<gallery caption="RadioButton" widths="350" heights="300px" perrow="2">
−
Image:Android_2013_U2_11_RadioButton_01.jpg| Ao iniciar a aplicación aparece marcada por defecto a primeira opción. Pero aínda non se premeu en ningunha opción.
+
Image:PDM_radiobutton_1.jpg| Ao iniciar a aplicación aparece marcada por defecto a primeira opción. Pero aínda non se premeu en ningunha opción.
−
Image:Android_2013_U2_11_RadioButton_02.jpg| Premer na primeira opción.  
+
Image:PDM_radiobutton_2.jpg| Premer na primeira opción.  
−
Image:Android_2013_U2_11_RadioButton_03.jpg| Premer na segunda opción.
+
Image:PDM_radiobutton_3.jpg| Premer na segunda opción.
 
</gallery>
 
</gallery>
  
 +
 +
<br />
 
===XML do Layout===
 
===XML do Layout===
  
 
*Observar como '''RadioGroup''' é un layout máis de tipo Linear.
 
*Observar como '''RadioGroup''' é un layout máis de tipo Linear.
 
*Observar como a primeira opción está activada por defecto.
 
*Observar como a primeira opción está activada por defecto.
−
<syntaxhighlight lang="xml" line highlight="6,9,25,15,16,23">
+
<syntaxhighlight lang="xml" line highlight="7,10,26,16,17,24">
 +
<?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 60: Línea 63:
  
 
         <RadioButton
 
         <RadioButton
−
             android:id="@+id/rbtn_maior18"
+
             android:id="@+id/rbtnMaior18_UD02_01_Radio"
 
             android:layout_width="wrap_content"
 
             android:layout_width="wrap_content"
 
             android:layout_height="wrap_content"
 
             android:layout_height="wrap_content"
Línea 68: Línea 71:
  
 
         <RadioButton
 
         <RadioButton
−
             android:id="@+id/rbtn_menor18"
+
             android:id="@+id/rbtnMenor18_UD02_01_Radio"
 
             android:layout_width="wrap_content"
 
             android:layout_width="wrap_content"
 
             android:layout_height="wrap_content"
 
             android:layout_height="wrap_content"
Línea 76: Línea 79:
  
 
     <EditText
 
     <EditText
−
         android:id="@+id/txt_resultado"
+
         android:id="@+id/txtResultado_UD02_01_Radio"
 
         android:layout_width="match_parent"
 
         android:layout_width="match_parent"
 
         android:layout_height="wrap_content"
 
         android:layout_height="wrap_content"
Línea 82: Línea 85:
  
 
</LinearLayout>
 
</LinearLayout>
−
</syntaxhighlight>
 
  
 +
 +
<br />
 
===Código Java===
 
===Código Java===
  
 
*Implementamos o método '''controlarIdade'''
 
*Implementamos o método '''controlarIdade'''
−
<syntaxhighlight lang="java" line highlight="24-36">
+
<syntaxhighlight lang="java" line highlight="12-24">
−
package com.example.u2_11_radiobutton;
+
package es.cursoandroid.cifprodolfoucha.aprendiendo.UI.RadioButtons;
  
 
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.EditText;
 
import android.widget.EditText;
  
−
public class U2_11_RadioButton extends Activity {
+
import es.cursoandroid.cifprodolfoucha.aprendiendo.R;
 +
 
 +
public class UD02_01_RadioButtons extends Activity {
  
−
@Override
+
    public void controlarIdade(View view) {
−
protected void onCreate(Bundle savedInstanceState) {
 
−
super.onCreate(savedInstanceState);
 
−
setContentView(R.layout.activity_u2_11__radio_button);
 
−
}
 
  
−
@Override
+
        EditText caixa = (EditText) findViewById(R.id.txtResultado_UD02_01_Radio);
−
public boolean onCreateOptionsMenu(Menu menu) {
 
−
// Inflate the menu; this adds items to the action bar if it is present.
 
−
getMenuInflater().inflate(R.menu.u2_11__radio_button, menu);
 
−
return true;
 
−
}
 
  
−
public void controlarIdade(View view) {
+
        switch (view.getId()) {
 +
            case R.id.rbtnMaior18_UD02_01_Radio:
 +
                caixa.setText("Tes máis de 18 anos");
 +
                break;
 +
            case R.id.rbtnMenor18_UD02_01_Radio:
 +
                caixa.setText("Tes menos de 18 anos");
 +
                break;
 +
        }
 +
    }
  
−
EditText caixa = (EditText) findViewById(R.id.txt_resultado);
 
  
−
switch (view.getId()) {
+
    @Override
−
case R.id.rbtn_maior18:
+
    protected void onCreate(Bundle savedInstanceState) {
−
caixa.setText("Tes máis de 18 anos");
+
        super.onCreate(savedInstanceState);
−
break;
+
        setContentView(R.layout.activity_ud02_01__radio_buttons);
−
case R.id.rbtn_menor18:
+
    }
−
caixa.setText("Tes menos de 18 anos");
 
−
break;
 
−
}
 
−
}
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
−
*'''Liña 30''': Indagamos que cal é o ID da opción na que se fixo click.
+
*'''Liña 16''': Indagamos que cal é o ID da opción na que se fixo click.
 +
 
 +
 
  
  

Revisión del 08:22 7 oct 2018

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>
35 
36 
37 <br />
38 ===Código Java===
39 
40 *Implementamos o método '''controlarIdade'''
41 <syntaxhighlight lang="java" line highlight="12-24">
42 package es.cursoandroid.cifprodolfoucha.aprendiendo.UI.RadioButtons;
43 
44 import android.app.Activity;
45 import android.os.Bundle;
46 import android.view.View;
47 import android.widget.EditText;
48 
49 import es.cursoandroid.cifprodolfoucha.aprendiendo.R;
50 
51 public class UD02_01_RadioButtons extends Activity {
52 
53     public void controlarIdade(View view) {
54 
55         EditText caixa = (EditText) findViewById(R.id.txtResultado_UD02_01_Radio);
56 
57         switch (view.getId()) {
58             case R.id.rbtnMaior18_UD02_01_Radio:
59                 caixa.setText("Tes máis de 18 anos");
60                 break;
61             case R.id.rbtnMenor18_UD02_01_Radio:
62                 caixa.setText("Tes menos de 18 anos");
63                 break;
64         }
65     }
66 
67 
68     @Override
69     protected void onCreate(Bundle savedInstanceState) {
70         super.onCreate(savedInstanceState);
71         setContentView(R.layout.activity_ud02_01__radio_buttons);
72     }
73 }
  • Liña 16: Indagamos que cal é o ID da opción na que se fixo click.





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