Instead of creating RadioButton through drag and drop from palette, android also facilitates you to create it programmatically (dynamically). For creating dynamic RadioButton, we need to use android.view.ViewGroup.LayoutParams which configures the width and height of views and implements setOnCheckedChangeListener() method of RadioGroup class.

Example of Dynamic RadioButton

Let’s see an example of Dynamic RadioButton.

activity_main.xml

File: activity_main.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”
    android:layout_width=“match_parent”
    android:layout_height=“match_parent”
    android:paddingBottom=“@dimen/activity_vertical_margin”
    android:paddingLeft=“@dimen/activity_horizontal_margin”
    android:paddingRight=“@dimen/activity_horizontal_margin”
    android:paddingTop=“@dimen/activity_vertical_margin”
    android:id=“@+id/relativeLayout”
    tools:context=“com.example.test.dynamicradiobutton.MainActivity”>
</RelativeLayout>

Activity class

File: MainActivity.java

package com.example.test.dynamicradiobutton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
    RadioGroup rg;
    RelativeLayout rl;
    RadioButton rb1,rb2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       rg = new RadioGroup(this);
        rl = (RelativeLayout) findViewById(R.id.relativeLayout);
        rb1 = new RadioButton(this);
        rb2 = new RadioButton(this);
        rb1.setText(“Male”);
        rb2.setText(“Female”);
        rg.addView(rb1);
        rg.addView(rb2);
        rg.setOrientation(RadioGroup.HORIZONTAL);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((int) LayoutParams.WRAP_CONTENT,(int)LayoutParams.WRAP_CONTENT);
        params.leftMargin =150;
        params.topMargin = 100;
        rg.setLayoutParams(params);
        rl.addView(rg);
        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton radioButton = (RadioButton) findViewById(checkedId);
                Toast.makeText(getApplicationContext(),radioButton.getText(),Toast.LENGTH_LONG).show();
            }

 

});

}

}

android Dynamically Radio Button 1
android Dynamically Radio Button 2