RadioButton can be understood as a type of two-states button. Here, the two-states means that it can either be checked or unchecked. With a single click, we can convert an unchecked radio button to a checked radio button. The user cannot mark a checked radio button to unchecked. It is generally used with RadioGroup. Several radio buttons are present in a RadioGroup. When one radio button is marked as checked, all other radio buttons are made unchecked.
Example of Android Radio Button:
To implement a single radio button separately as well as a radio button in RadioGroup, add the below codes in the activity_main.xml file and the mainactivity.java file respectively.
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: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=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Select your Subject ?" android:textStyle="bold" android:layout_marginLeft="10dp" android:textSize="20dp"/> <!-- add RadioGroup which contain the many RadioButton--> <RadioGroup android:layout_marginTop="50dp" android:id="@+id/groupradio" android:layout_marginLeft="10dp" android:layout_width="fill_parent" android:layout_height="wrap_content"> <!-- In RadioGroup create the 1 Radio Button--> <!-- like this we will add some more Radio Button--> <RadioButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/radia_id1" android:text="A" android:textSize="20dp"/> <RadioButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/radia_id2" android:text="B" android:textSize="20dp"/> <RadioButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/radia_id3" android:text="C" android:textSize="20dp"/> <RadioButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/radia_id4" android:text="D" android:textSize="20dp"/> </RadioGroup> <!-- add button For Submit the Selected item--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Submit" android:id="@+id/submit" android:textStyle="bold" android:textSize="20dp" android:layout_marginTop="200dp" android:layout_marginLeft="180dp" /> <!-- add clear button for clear the selected item--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Clear" android:id="@+id/clear" android:textSize="20dp" android:textStyle="bold" android:layout_marginTop="200dp" android:layout_marginLeft="20dp" /> </RelativeLayout> |
Activity class: (File: MainActivity.java)
package com.example.radioapp; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private RadioGroup radioGroup; Button submit, clear; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); submit = (Button)findViewById(R.id.submit); clear = (Button)findViewById(R.id.clear); radioGroup = (RadioGroup)findViewById(R.id.groupradio); // Uncheck or reset the radio buttons initially radioGroup.clearCheck(); // Add the Listener to the RadioGroup radioGroup.setOnCheckedChangeListener( new RadioGroup .OnCheckedChangeListener() { @Override // The flow will come here when // any of the radio buttons in the radioGroup // has been clicked // Check which radio button has been clicked public void onCheckedChanged(RadioGroup group, int checkedId) { // Get the selected Radio Button RadioButton radioButton = (RadioButton)group .findViewById(checkedId); } }); // Add the Listener to the Submit Button submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // When submit button is clicked, // Ge the Radio Button which is set // If no Radio Button is set, -1 will be returned int selectedId = radioGroup.getCheckedRadioButtonId(); if (selectedId == -1) { Toast.makeText(MainActivity.this, "No answer has been selected", Toast.LENGTH_SHORT) .show(); } else { RadioButton radioButton = (RadioButton)radioGroup .findViewById(selectedId); // Now display the value of selected item // by the Toast message Toast.makeText(MainActivity.this, radioButton.getText(), Toast.LENGTH_SHORT) .show(); } } }); // Add the Listener to the Submit Button clear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Clear RadioGroup // i.e. reset all the Radio Buttons radioGroup.clearCheck(); } }); } } |
Output 1:
Output 2: