RadioButton

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda

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

  • Creamos un novo proxecto: U2_11_RadioButton
  • 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 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     android:orientation="vertical" >
 5 
 6     <RadioGroup
 7         android:layout_width="fill_parent"
 8         android:layout_height="wrap_content"
 9         android:orientation="vertical" >
10 
11         <RadioButton
12             android:id="@+id/rbtn_maior18"
13             android:layout_width="wrap_content"
14             android:layout_height="wrap_content"
15             android:checked="true"
16             android:onClick="controlarIdade"
17             android:text=">18 anos" />
18 
19         <RadioButton
20             android:id="@+id/rbtn_menor18"
21             android:layout_width="wrap_content"
22             android:layout_height="wrap_content"
23             android:onClick="controlarIdade"
24             android:text="&lt;=18 anos" />
25     </RadioGroup>
26 
27     <EditText
28         android:id="@+id/txt_resultado"
29         android:layout_width="match_parent"
30         android:layout_height="wrap_content"
31         android:hint="Resultado" />
32 
33 </LinearLayout>

Código Java

  • Implementamos o método controlarIdade
 1 package com.example.u2_11_radiobutton;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.view.Menu;
 6 import android.view.View;
 7 import android.widget.EditText;
 8 
 9 public class U2_11_RadioButton extends Activity {
10 
11 	@Override
12 	protected void onCreate(Bundle savedInstanceState) {
13 		super.onCreate(savedInstanceState);
14 		setContentView(R.layout.activity_u2_11__radio_button);
15 	}
16 
17 	@Override
18 	public boolean onCreateOptionsMenu(Menu menu) {
19 		// Inflate the menu; this adds items to the action bar if it is present.
20 		getMenuInflater().inflate(R.menu.u2_11__radio_button, menu);
21 		return true;
22 	}
23 
24 	public void controlarIdade(View view) {
25 
26 		EditText caixa = (EditText) findViewById(R.id.txt_resultado);
27 
28 		switch (view.getId()) {
29 		case R.id.rbtn_maior18:
30 			caixa.setText("Tes máis de 18 anos");
31 			break;
32 		case R.id.rbtn_menor18:
33 			caixa.setText("Tes menos de 18 anos");
34 			break;
35 		}
36 	}
37 }
  • Liña 30: 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).