android | ¿Cómo agregar botones de radio en una aplicación de Android?

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: 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *