Grupo de radio en Kotlin

La clase RadioGroup del lenguaje de programación Kotlin se usa para crear un contenedor que contiene múltiples RadioButtons . La clase RadioGroup es beneficiosa para colocar un conjunto de botones de opción dentro de ella porque esta clase agrega la función de ámbito de exclusión múltiple a los botones de opción. Esta característica asegura que el usuario podrá marcar solo uno de los botones de radio entre todos los que pertenecen a una clase RadioGroup. Si el usuario marca otro botón de opción, la clase RadioGroup desmarca el botón de opción previamente marcado. Esta característica es muy importante cuando el desarrollador quiere tener solo una respuesta para seleccionar, como preguntar el género de un usuario.

La jerarquía de clases de la clase RadioGroup en Kotlin

Class Heirarchy of RadioGroup in Kotlin

Atributos XML del widget RadioGroup

Atributos XML Descripción
Android: identificación Para identificar de forma única el RadioGroup
android:fondo Para establecer un color de fondo
Android: al hacer clic Un método para realizar cierta acción cuando se hace clic en RadioGroup
Android: al hacer clic Es un nombre del método para invocar cuando se hace clic en el botón de opción.
Android: visibilidad Se utiliza para controlar la visibilidad, es decir, visible, invisible o desaparecido
Android: diseño_ancho Para establecer el ancho
android:layout_height Para establecer la altura
android:contentDescripción Para dar una breve descripción de la vista.
Android: botón marcado Almacena la identificación del botón de radio secundario que debe verificarse de forma predeterminada dentro de este grupo de radio
Android: orientación Para fijar la constante de orientación de la vista

Ejemplo

En este ejemplo, se cubrirá la demostración paso a paso de la creación de un RadioGroup, que consta de 5 elementos secundarios RadioButton que le piden al usuario que elija un curso ofrecido por GeeksforGeeks. Cuando el usuario marca uno de los botones de radio y hace clic en el botón Enviar, aparece un mensaje de brindis que muestra la opción seleccionada.

Nota : Los siguientes pasos se realizan en Android Studio versión 4.0

Crear nuevo proyecto

  1. Haga clic en Archivo, luego en Nuevo => Nuevo proyecto.
  2. Elija «Actividad vacía» para la plantilla del proyecto.
  3. Seleccione el idioma como Kotlin.
  4. Seleccione el SDK mínimo según su necesidad.

Abra el archivo activity_main.xml

A continuación se muestra el código para activity_main.xmlque el archivo agregue un RadioGroup y sus 5 hijos RadioButton. También se agrega un botón de envío normal para aceptar y mostrar la respuesta seleccionada por el usuario.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
    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"
    android:background="#168BC34A"
    tools:context=".MainActivity">
  
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/roboto"
        android:text="@string/Heading"
        android:textAlignment="center"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="36sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.19" />
  
    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="#024CAF50"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView"
        app:layout_constraintVertical_bias="0.24000001">
  
        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/roboto"
            android:text="@string/RadioButton1"
            android:textSize="24sp" />
  
        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/roboto"
            android:text="@string/radioButton2"
            android:textSize="24sp" />
  
        <RadioButton
            android:id="@+id/radioButton3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/roboto"
            android:text="@string/radioButton3"
            android:textSize="24sp" />
  
        <RadioButton
            android:id="@+id/radioButton4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/roboto"
            android:text="@string/radioButton4"
            android:textSize="24sp" />
  
        <RadioButton
            android:id="@+id/radioButton5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/roboto"
            android:text="@string/radioButton5"
            android:textSize="24sp" />
    </RadioGroup>
  
    <Button
        android:id="@+id/submitButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#AB4CAF50"
        android:text="@string/submit_Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/radioGroup1"
        app:layout_constraintVertical_bias="0.17000002" />
</androidx.constraintlayout.widget.ConstraintLayout>

Abra el archivo MainActivity.kt

A continuación se muestra el código para MainActivity.ktque el archivo acceda al widget RadioGroup en el archivo kotlin y muestre un mensaje adecuado cada vez que el usuario seleccione un botón de opción.

package com.example.sampleproject
  
import androidx.appcompat.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
import kotlinx.android.synthetic.main.activity_main.*
  
class MainActivity : AppCompatActivity() {
    var radioGroup: RadioGroup? = null
    lateinit var radioButton: RadioButton
    private lateinit var button: Button
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Display name of the Application
        title = "RadioGroup in Kotlin"
  
        // Assigning id of RadioGroup
        radioGroup = findViewById(R.id.radioGroup1)
  
        // Assigning id of Submit button
        button = findViewById(R.id.submitButton)
  
        // Actions to be performed 
        // when Submit button is clicked
        button.setOnClickListener {
  
            // Getting the checked radio button id 
            // from the radio group
            val selectedOption: Int = radioGroup!!.checkedRadioButtonId
  
            // Assigning id of the checked radio button
            radioButton = findViewById(selectedOption)
  
            // Displaying text of the checked radio button in the form of toast
            Toast.makeText(baseContext, radioButton.text, Toast.LENGTH_SHORT).show()
        }
    }
}

Modificar el archivo strings.xml

Todas las strings que se utilizan en la actividad, desde el nombre de la aplicación hasta la opción de varios botones de radio, se enumeran en este archivo.

<resources>
    <string name="app_name">RadioGroup in Kotlin</string>
    <string name="Heading">Choose a GfG course</string>
    <string name="RadioButton1">Amazon SDE Test Series</string>
    <string name="radioButton2">Placement 100</string>
    <string name="radioButton3">C++ STL</string>
    <string name="radioButton4">CS Core Subjects</string>
    <string name="radioButton5">DSA Self paced</string>
    <string name="submit_Button">Submit</string>
</resources>

Producción

RadioGroup Activity
RadioGroup Activity

Publicación traducida automáticamente

Artículo escrito por RISHU_MISHRA 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 *