Grupo de radio dinámico en Kotlin

En Android RadioGroup se usa para configurar los botones de radio. Si se selecciona un botón de opción dentro del grupo de radio, todos los demás se deseleccionan automáticamente.

En este artículo, discutiremos cómo crear programáticamente un RadioGroup en Kotlin.

Comencemos creando primero un proyecto en Android Studio. Para hacerlo, siga estas instrucciones:

  • Haga clic en Archivo, luego en Nuevo y luego en Nuevo proyecto, y asigne el nombre que desee.
  • Luego, seleccione Compatibilidad con el idioma 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 .

Después de eso, tenemos que diseñar nuestro diseño. Para eso necesitamos trabajar con el archivo XML. Ve a app > res > layout y pega el siguiente código: 

Modificar archivo activity_main.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:gravity="center"
        android:id="@+id/layout"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
 
</RelativeLayout>

MainActivity.kt

El siguiente paso es codificar nuestro RadioGroup. Abra app/src/main/java/yourPackageName/MainActivity.kt y pegue el siguiente código:

Java

package com.geeksforgeeks.myfirstKotlinapp
 
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.ViewGroup
import android.widget.RadioButton
import android.widget.RadioGroup
import android.widget.RelativeLayout
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        val layout = findViewById<RelativeLayout>(R.id.layout)
  
        // Create RadioButton Dynamically
        val geek1 = RadioButton(this)
        //setting height and width
        geek1.layoutParams = RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
        geek1.setText(R.string.java) //setting text of first radio button
        geek1.id = 0
  
        val geek2 = RadioButton(this)
        geek2.layoutParams = RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
        geek2.setText(R.string.python) ////setting text of second radio button
        geek2.id = 1
  
        // Create RadioGroup Dynamically
        val radioGroup = RadioGroup(this)
        val params = RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
        params.setMargins(40, 0, 0, 0)
        radioGroup.layoutParams = params
  
        //adding button to the radio group container
        radioGroup.addView(geek1)
        radioGroup.addView(geek2)
        layout.addView(radioGroup)
  
        radioGroup.setOnCheckedChangeListener { group, checkedId ->
            var text = getString(R.string.Chose)
            text += " " + getString(if (checkedId == 0) {
                R.string.java
            } else {
                R.string.python
            })
            Toast.makeText(applicationContext, text, Toast.LENGTH_SHORT).show()
        }
  
    }
}

El código anterior todavía producirá algunos errores porque hemos usado algunas strings que se han declarado en otro archivo, para resolver esto, agregue el siguiente fragmento de código a app/res/values/strings.xml 

XML

<resources>
    <string name="app_name">My Application</string>
    <string name="java">Java</string>
    <string name="python">Python</string>
    <string name="Choose">You selected:</string>
 
</resources>

AndroidManifest.xml

Java

<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.tutorialwing.dynamicradiogroup"
xmlns:android="<a class="vglnk" href="http://schemas.android.com/apk/res/android" rel="nofollow">
  
    <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>

Ejecutar como emulador:

Publicación traducida automáticamente

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