Botón de radio en Kotlin

El botón de radio de Android es un botón de dos estados que se puede marcar o desmarcar. Además, funciona igual que Checkbox, excepto que el botón de opción no puede permitir que se desmarque una vez que se seleccionó.

Por lo general, usamos los controles RadioButton para permitir que los usuarios seleccionen una opción entre múltiples opciones.

De forma predeterminada, el botón de radio está en estado APAGADO (sin marcar), pero podemos cambiar el estado predeterminado de botón de radio usando el atributo android:checked .

Siguiendo los pasos para crear un nuevo proyecto-

  • Haga clic en Archivo, luego Nuevo => Nuevo proyecto .
  • Luego, marque Incluir compatibilidad con Kotlin y haga clic en el botón Siguiente .
  • Seleccione SDK mínimo, lo que necesite.
  • Seleccione Actividad vacía y luego haga clic en finalizar.

Diferentes atributos del widget RadioButton

Atributos XML Descripción
Android: identificación Se utiliza para identificar de forma única el control.
Android: gravedad Se utiliza para especificar cómo alinear el texto como izquierda, derecha, centro, arriba, etc.
Android: marcado Se utiliza para especificar el estado actual del botón de radio
Android: al hacer clic Es un nombre del método para invocar cuando se hace clic en el botón de opción.
Android:Tamaño del texto Se utiliza para establecer el tamaño del texto.
Android: color de texto Se utiliza para establecer el color del texto.
Android: estilo de texto Se utiliza para establecer el estilo del texto. Por ejemplo, negrita, cursiva, negrita cursiva, etc.
android: ancho máximo Se utiliza para que la vista tenga como máximo este número de píxeles de ancho.
android: ancho mínimo Se utiliza para que la vista tenga al menos este número de píxeles de ancho.
android:fondo Se utiliza para establecer el fondo del control del botón de opción.
Android: visibilidad Se utiliza para controlar la visibilidad.

Modifique el archivo strings.xml

Podemos escribir el nombre de la aplicación como RadioButtonInKotlin y escribir otras strings que se pueden usar.

<resources>
    <string name="app_name">RadioButtonInKotlin</string>
    <string name="checked">checked</string>
    <string name="unchecked">unchecked</string>
</resources>

Agregue RadioButtons en el archivo activity_main.xml

En Android, usamos botones de radio dentro de RadioGroup para combinar un conjunto de botones de radio en un solo grupo y se asegurará de que el usuario pueda seleccionar solo el botón del grupo de botones.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/root_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">
    <RadioGroup
        android:id="@+id/radio_group"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#dbeceb"
        android:padding="15dp">
  
        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Which is your favorite color?"
            android:textStyle="bold"
            android:textSize="20sp"/>
  
        <RadioButton
            android:id="@+id/red"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RED"
            android:onClick="radio_button_click"/>
  
        <RadioButton
            android:id="@+id/green"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="GREEN"
            android:onClick="radio_button_click"/>
  
        <RadioButton
            android:id="@+id/yellow"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="YELLOW"
            android:onClick="radio_button_click"/>
  
        <RadioButton
            android:id="@+id/pink"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="PINK"
            android:onClick="radio_button_click"/>
    </RadioGroup>
  
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Get Selected Color"/>
</LinearLayout>

Aquí, estamos tratando de implementar un escenario en el que debe seleccionar su color favorito. Entonces, en el archivo activity_main.xml, hemos agregado 4 botones de radio dentro de un grupo de radio. Cada botón representa un color. Ahora, solo se puede seleccionar un botón de radio a la vez. *

Ahora, accederemos a este widget en el archivo kotlin y mostraremos un mensaje adecuado cada vez que se seleccione un botón de opción.

Ahora, abra el archivo MainActivity.kt y agregue el siguiente código.

package com.geeksforgeeks.myfirstkotlinapp
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.*
import kotlinx.android.synthetic.main.activity_main.*
import android.widget.RadioGroup
  
  
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Get radio group selected item using on checked change listener
        radio_group.setOnCheckedChangeListener(
            RadioGroup.OnCheckedChangeListener { group, checkedId ->
                val radio: RadioButton = findViewById(checkedId)
                Toast.makeText(applicationContext," On checked change :"+
                        " ${radio.text}",
                    Toast.LENGTH_SHORT).show()
            })
        // Get radio group selected status and text using button click event
        button.setOnClickListener{
            // Get the checked radio button id from radio group
            var id: Int = radio_group.checkedRadioButtonId
            if (id!=-1){ // If any radio button checked from radio group
                // Get the instance of radio button using id
                val radio:RadioButton = findViewById(id)
                Toast.makeText(applicationContext,"On button click :" +
                        " ${radio.text}",
                    Toast.LENGTH_SHORT).show()
            }else{
                // If no radio button checked in this radio group
                Toast.makeText(applicationContext,"On button click :" +
                        " nothing selected",
                    Toast.LENGTH_SHORT).show()
            }
        }
    }
    // Get the selected radio button text using radio button on click listener
    fun radio_button_click(view: View){
        // Get the clicked radio button instance
        val radio: RadioButton = findViewById(radio_group.checkedRadioButtonId)
        Toast.makeText(applicationContext,"On click : ${radio.text}",
            Toast.LENGTH_SHORT).show()
    }
}

En el archivo MainActivity.kt, hemos accedido al grupo de radio en el que he agregado cuatro botones de radio. Luego, hemos configurado un oyente para que muestre un mensaje de brindis cada vez que cambie la selección del botón de opción.

Dado que el archivo AndroidManifest.xml es muy importante en cualquier aplicación de Android, también lo mencionaremos aquí.

Archivo AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.geeksforgeeks.myfirstkotlinapp">
  
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
  
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
  
</manifest>

Cuando ejecute la aplicación, obtendrá el resultado como se muestra a continuación

Ejecutar como emulador:

Publicación traducida automáticamente

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