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.