Diferencia entre revisiones de «RadioButton»
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: | + | 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: | + | Image:PDM_radiobutton_2.jpg| Premer na primeira opción. |
| − | Image: | + | 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=" | + | <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/ | + | 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/ | + | 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/ | + | 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> | ||
| − | |||
| + | |||
| + | <br /> | ||
===Código Java=== | ===Código Java=== | ||
*Implementamos o método '''controlarIdade''' | *Implementamos o método '''controlarIdade''' | ||
| − | <syntaxhighlight lang="java" line highlight="24 | + | <syntaxhighlight lang="java" line highlight="12-24"> |
| − | package | + | 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.View; | import android.view.View; | ||
import android.widget.EditText; | import android.widget.EditText; | ||
| − | public class | + | import es.cursoandroid.cifprodolfoucha.aprendiendo.R; |
| + | |||
| + | public class UD02_01_RadioButtons extends Activity { | ||
| − | + | public void controlarIdade(View view) { | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | EditText caixa = (EditText) findViewById(R.id.txtResultado_UD02_01_Radio); | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | 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; | ||
| + | } | ||
| + | } | ||
| − | |||
| − | + | @Override | |
| − | + | protected void onCreate(Bundle savedInstanceState) { | |
| − | + | super.onCreate(savedInstanceState); | |
| − | + | setContentView(R.layout.activity_ud02_01__radio_buttons); | |
| − | + | } | |
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | *'''Liña | + | *'''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.
- 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.
- Imaxe obtida de: http://www.itcsolutions.eu/2011/08/27/android-tutorial-4-procedural-vs-declarative-design-of-user-interfaces
- Referencias:
- Control RadioButton: http://developer.android.com/reference/android/widget/RadioButton.html
- Control RadioGroup: http://developer.android.com/reference/android/widget/RadioGroup.html
- Introdución ao control: http://developer.android.com/guide/topics/ui/controls/radiobutton.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: 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.
- RadioButton
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="<=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).