What we will do?
-> We will make a mini traffic signal in our phone with using radio buttons. Right now we are not concentrating on the timing of the color change.
What we need?
- A LinearLayout.
- 3 RadioButtons
Step 2 : Give a name and a package name to your application, then click on Next till Finish.Name can be RadioButtonDemo.
Step 3 : Drag Three RadioButtons in The activity_main.xml from the Palette.
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/linearl">" <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Mini Traffic Signal" android:textAppearance="?android:attr/textAppearanceLarge" /> <RadioGroup android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:id="@+id/rgOpinion"> <RadioButton android:id="@+id/red" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Stop" /> <RadioButton android:id="@+id/yellow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Drive Slow" /> <RadioButton android:id="@+id/green" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Go" /> </RadioGroup> </LinearLayout>
MainActivity.java
package com.mia.radiobuttondemo;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.Toast;
import android.app.Activity;
import android.graphics.Color;
public class MainActivity extends Activity {
RadioButton red,yellow,green;
LinearLayout linearl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
red = (RadioButton)findViewById(R.id.red);
yellow = (RadioButton)findViewById(R.id.yellow);
green = (RadioButton)findViewById(R.id.green);
linearl = (LinearLayout)findViewById(R.id.linearl);
red.setOnCheckedChangeListener(
new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
if(red.isChecked()==true)
linearl.setBackgroundColor(Color.RED);
}});
yellow.setOnCheckedChangeListener(
new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
if(yellow.isChecked()==true)
linearl.setBackgroundColor(Color.YELLOW);
}});
green.setOnCheckedChangeListener(
new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
if(green.isChecked()==true)
linearl.setBackgroundColor(Color.GREEN);
}});
}
}
Step 5 : Run the Project.
![]() | ![]() | ![]() |
Explanation from activity_main.xml
- We define an id for the Linear Layout as linearl which consists all our elements.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/linearl">
- Then we make a RadioGroup which is used to collect all RadioButtons under one Group or Title (e.g. Countries, Cars).The id of RadioGroup is not essential when we have a single RadioGroup.
<RadioGroup android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:id="@+id/rgOpinion">
- Make a RadioButton for each of our option (red,yellow,green) and give them specific ids like red,yellow,green respectively.
<RadioButton android:id="@+id/red" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Stop" /> <RadioButton android:id="@+id/yellow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Drive Slow" /> <RadioButton android:id="@+id/green" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Go" />
Explanation for MainActivity.java
- We declare variables of respective types for the three radio buttons and the linear layout.
RadioButton red,yellow,green; LinearLayout linearl;
- We direct the declared variables to their specific elements from activity_main.xml using method findViewById().
red = (RadioButton)findViewById(R.id.red); yellow = (RadioButton)findViewById(R.id.yellow); green = (RadioButton)findViewById(R.id.green); linearl = (LinearLayout)findViewById(R.id.linearl);
- We define onCheckedChangeListener() method for all our radio buttons, so that we can take a proper action when they are checked(clicked).
red.setOnCheckedChangeListener(
new CompoundButton.OnCheckedChangeListener() {
Note : We can also define setOnCheckedChangeListener from class RadioGroup. The above statement would become...
red.setOnCheckedChangeListener(
new RadioGroup.OnCheckedChangeListener() {
- By applying an if condition we check that the particular radio-button is checked by isChecked() method.
if(red.isChecked()==true)
- In the if parenthesis we define the code to change the color of our layout by using the method setBackgroudColor().
linearl.setBackgroundColor(Color.RED);














No comments:
Post a Comment