El botón de opción de Android es un widget que puede tener más de una opción para elegir. El usuario puede elegir solo una opción a la vez. Cada opción aquí se refiere a un botón de radio y todas las opciones para el tema se denominan en conjunto como Grupo de radio. Por lo tanto, los botones de radio se usan dentro de un grupo de radio.
Requisitos previos:
- Fundamentos de desarrollo de aplicaciones de Android para principiantes
- Guía para instalar y configurar Android Studio
- android | Comenzando con la primera aplicación/proyecto de Android
- android | Ejecutando tu primera aplicación de Android
Por ejemplo:
Esta imagen muestra 4 opciones de los temas para una pregunta. En esto, cada tema mencionado es un botón de radio y los 4 temas juntos están encerrados en un grupo de radio.
Cómo crear una aplicación de Android para usar botones de radio
Este ejemplo ayudará a desarrollar una aplicación de Android que cree botones de radio de acuerdo con el ejemplo anterior:
Paso 1: Primero cree una nueva aplicación de Android. Esto creará un archivo XML «actividad_principal.xml» y un archivo Java «MainActivity.Java». Consulte los requisitos previos para obtener más información sobre este paso.
Paso 2: abra el archivo «actividad_principal.xml» y agregue los siguientes widgets en un diseño relativo :
- Un TextView para mostrar el mensaje de la pregunta
- Un grupo de radio para mantener la opción Botones de radio que son las posibles respuestas
- 4 botones de radio para mantener una respuesta cada uno.
- Un botón Enviar y Borrar para almacenar la respuesta.
Además, asigne la ID a cada uno de los componentes junto con otros atributos como se muestra en la imagen dada y el código a continuación. El ID asignado a un componente ayuda a que ese componente se encuentre y use fácilmente en los archivos Java.
Sintaxis:
android:id="@+id/id_name"
Aquí las identificaciones dadas son las siguientes:
- Grupo de radio: groupradio
- RadioButton1: radia_id1
- RadioButton2: radia_id2
- RadioButton3: radia_id3
- RadioButton4: radia_id4
- Botón enviar: enviar
- Borrar botón: claro
Esto hará que la interfaz de usuario de la aplicación.
Paso 3: ahora, después de la interfaz de usuario, este paso creará el backend de la aplicación. Para esto, abra el archivo “MainActivity.java” e instancia los componentes creados en el archivo XML (RadioGroup, TextView, Clear y Submit Button) usando el método findViewById(). Este método vincula el objeto creado a los componentes de la interfaz de usuario con la ayuda de la ID asignada.
Sintaxis: general
ComponentType object = (ComponentType)findViewById(R.id.IdOfTheComponent);
Sintaxis: Componentes utilizados
Button submit = (Button)findViewById(R.id.submit); Button clear = (Button)findViewById(R.id.clear); RadioGroup radioGroup = (RadioGroup)findViewById(R.id.groupradio);
Paso 4: este paso implica configurar las operaciones en RadioGroup, RadioButtons y los botones Enviar y Borrar.
Estas operaciones son las siguientes:
- Desactive todos los botones de radio inicialmente como el valor predeterminado. Esto se hace con el siguiente comando:
radioGroup.clearCheck();
- Agregue el Oyente en el RadioGroup. Esto ayudará a saber cuándo el usuario hace clic en cualquier botón de opción y se realizará la operación posterior. El oyente se puede agregar de la siguiente manera:
radioGroup.setOnCheckedChangeListener(nuevo RadioGroup.OnCheckedChangeListener(){}
- Defina las operaciones que se realizarán cuando se haga clic en un botón de opción. Esto implica obtener el botón de radio específico en el que se ha hecho clic, usando su id. Luego, este botón de radio se configura y el resto del botón de radio se reinicia.
- Agregue el oyente en el botón Enviar y el botón Borrar. Esto se usará para verificar cuándo el usuario hace clic en el botón. Esto se hace de la siguiente manera:
enviar.setOnClickListener(nueva Vista.OnClickListener() {}
clear.setOnClickListener(nueva Vista.OnClickListener() {}
- En el detector del botón Enviar, establezca las operaciones que se realizarán. Esto implica mostrar la respuesta marcada en forma de Toast .
- En Clear Button Listener, establezca las operaciones que se realizarán. Esto implica restablecer todos los botones de opción.
Paso 5: ahora ejecute la aplicación y opere de la siguiente manera:
- Cuando se abre la aplicación, muestra una pregunta con 4 respuestas y un botón de borrar y enviar.
- Cuando se hace clic en cualquier respuesta, se establece ese botón de radio.
- Al hacer clic en cualquier otro botón de radio, se establece ese y se restablecen los demás.
- Al hacer clic en el botón Enviar, se muestra la respuesta marcada actualmente como un brindis.
- Al hacer clic en el botón Borrar, se restablecen todos los botones de opción a su estado predeterminado.
El código completo de MainActivity.java y activity_main.xml de RadioButton es el siguiente:
Nombre de archivo: actividad_principal.xml
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Select your Subject ?" android:textStyle="bold" android:layout_marginLeft="10dp" android:textSize="20sp"/> <!-- add RadioGroup which contain the many RadioButton--> <RadioGroup android:layout_marginTop="50dp" android:id="@+id/groupradio" android:layout_marginLeft="10dp" android:layout_width="fill_parent" android:layout_height="wrap_content"> <!-- In RadioGroup create the 1 Radio Button--> <!-- like this we will add some more Radio Button--> <RadioButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/radia_id1" android:text="DBMS" android:textSize="20sp"/> <RadioButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/radia_id2" android:text="C/C++ Programming" android:textSize="20sp"/> <RadioButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/radia_id3" android:text="Data Structure" android:textSize="20sp"/> <RadioButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/radia_id4" android:text="Algorithms" android:textSize="20sp"/> </RadioGroup> <!-- add button For Submit the Selected item--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Submit" android:id="@+id/submit" android:textStyle="bold" android:textSize="20sp" android:layout_marginTop="200dp" android:layout_marginLeft="180dp" /> <!-- add clear button for clear the selected item--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Clear" android:id="@+id/clear" android:textSize="20sp" android:textStyle="bold" android:layout_marginTop="200dp" android:layout_marginLeft="20dp" /> </RelativeLayout>
Nombre de archivo: MainActivity.Java
Java
package org.geeksforgeeks.navedmalik.radiobuttons; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; public class MainActivity extends AppCompatActivity { // Define the object for Radio Group, // Submit and Clear buttons private RadioGroup radioGroup; Button submit, clear; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Bind the components to their respective objects // by assigning their IDs // with the help of findViewById() method submit = (Button)findViewById(R.id.submit); clear = (Button)findViewById(R.id.clear); radioGroup = (RadioGroup)findViewById(R.id.groupradio); // Uncheck or reset the radio buttons initially radioGroup.clearCheck(); // Add the Listener to the RadioGroup radioGroup.setOnCheckedChangeListener( new RadioGroup .OnCheckedChangeListener() { @Override // The flow will come here when // any of the radio buttons in the radioGroup // has been clicked // Check which radio button has been clicked public void onCheckedChanged(RadioGroup group, int checkedId) { // Get the selected Radio Button RadioButton radioButton = (RadioButton)group .findViewById(checkedId); } }); // Add the Listener to the Submit Button submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // When submit button is clicked, // Ge the Radio Button which is set // If no Radio Button is set, -1 will be returned int selectedId = radioGroup.getCheckedRadioButtonId(); if (selectedId == -1) { Toast.makeText(MainActivity.this, "No answer has been selected", Toast.LENGTH_SHORT) .show(); } else { RadioButton radioButton = (RadioButton)radioGroup .findViewById(selectedId); // Now display the value of selected item // by the Toast message Toast.makeText(MainActivity.this, radioButton.getText(), Toast.LENGTH_SHORT) .show(); } } }); // Add the Listener to the Submit Button clear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Clear RadioGroup // i.e. reset all the Radio Buttons radioGroup.clearCheck(); } }); } }
Producción:
Publicación traducida automáticamente
Artículo escrito por Naved_Alam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA