Create a RadioGroup in Android

We know that we can create RadioGroup in layout file. But, we can also create a RadioGroup programmatically and then add this View to layout file.

In this tutorial, we will learn how to create a RadioGroup with RadioButtons programmatically in Android, and add this RadioGroup to a LinearLayout in layout file.

Quick Code Create a RadioGroup

A quick snippet of code to create a new RadioGroup and RadioButtons in Kotlin Android programmatically

val rg = RadioGroup(this)
rg.orientation = RadioGroup.VERTICAL
val options = arrayOf("Option 1", "Option 2", "Option 3", "Option 4")
for (i in options.indices) {
    // create a radio button
    val rb = RadioButton(this)
    // set text for the radio button
    rb.text = options[i]
    // assign an automatically generated id to the radio button
    rb.id = View.generateViewId()
    // add radio button to the radio group
    rg.addView(rb)
}

Example 1 Create a RadioGroup and RadioButtons

Create Android Application with Kotlin Support and replace activity_main.xml and MainActivity.kt with the following files.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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"
    tools:context="com.tutorialkart.myapplication.MainActivity">
    <LinearLayout
        android:id="@+id/ll_main_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical">

    </LinearLayout>

</android.support.constraint.ConstraintLayout>

MainActivity.kt

package com.tutorialkart.myapplication

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.LinearLayout
import android.widget.RadioButton
import android.widget.RadioGroup

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val ll_main = findViewById(R.id.ll_main_layout) as LinearLayout

        val options = arrayOf("Option 1", "Option 2", "Option 3", "Option 4")

        // create a radio group
        val rg = RadioGroup(this)
        rg.orientation = RadioGroup.VERTICAL
        for (i in options.indices) {
            // create a radio button
            val rb = RadioButton(this)
            // set text for the radio button
            rb.text = options[i]
            // assign an automatically generated id to the radio button
            rb.id = View.generateViewId()
            // add radio button to the radio group
            rg.addView(rb)
        }
        // add radio group to the linear layout
        ll_main.addView(rg)
    }
}

Following is the Output with RadioGroup. The layout bounds are specified to know the positioning of RadioGroup in the layout.

Conclusion

In this Kotlin Android Tutorial, we have learnt how to create a RadioGroup programmatically in Android, and add this RadioGroup with RadioButtons to a LinearLayout in layout file.