Thursday, 9 March 2017

Android Checkbox and Radio Button Example

The Android CheckBox and Android Radio Button can be in two states, checked or unchecked. These are extremely useful widgets for simple yes/no return values from forms, along with ensuring validation.

Android Checkbox and Radio Button Example

File: content_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/content_main"
    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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="android.google.com.uiexample.MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="11dp"
        android:text="Checkbox and Radio Button Example"
        android:textAlignment="center"
        android:textColor="?android:attr/editTextColor"
        android:textSize="24sp"
        android:textStyle="normal|bold"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="42dp"
        android:text="Choose an option"
        android:textSize="18sp"
        android:textStyle="normal|bold|italic"/>

    <RadioGroup
        android:id="@+id/radio_group"
        android:layout_width="wrap_content"
        android:layout_height="85dp"
        android:layout_below="@+id/textView2"
        android:layout_gravity="end"
        android:layout_marginStart="5dp"
        android:layout_marginTop="5dp"
        android:gravity="bottom"
        android:orientation="vertical">

        <RadioButton
            android:id="@+id/radio_male"
            android:layout_width="110dp"
            android:layout_height="wrap_content"
            android:button="@null"
            android:checked="true"
            android:drawableEnd="@android:drawable/btn_radio"
            android:text="MALE"
            android:textSize="18sp"/>

        <RadioButton
            android:id="@+id/radio_female"
            android:layout_width="110dp"
            android:layout_height="wrap_content"
            android:button="@null"
            android:drawableEnd="@android:drawable/btn_radio"
            android:text="FEMALE"
            android:textSize="18sp"/>

    </RadioGroup>


    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/radio_group"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="40dp"
        android:text="Select which languages you can speak"
        android:textSize="18sp"
        android:textStyle="normal|bold|italic"/>

    <CheckBox
        android:id="@+id/cb_english"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/textView5"
        android:layout_marginStart="30dp"
        android:layout_marginTop="27dp"
        android:button="@null"
        android:drawableEnd="?android:attr/listChoiceIndicatorMultiple"
        android:text="ENGLISH"
        android:textSize="18sp"/>

    <CheckBox
        android:id="@+id/cb_german"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/cb_english"
        android:layout_marginStart="30dp"
        android:layout_marginTop="22dp"
        android:button="@null"
        android:drawableEnd="?android:attr/listChoiceIndicatorMultiple"
        android:text="GERMAN"
        android:textSize="18sp"/>

    <CheckBox
        android:id="@+id/cb_spanish"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/cb_english"
        android:layout_alignBottom="@+id/cb_english"
        android:layout_alignStart="@+id/cb_french"
        android:button="@null"
        android:drawableEnd="?android:attr/listChoiceIndicatorMultiple"
        android:text="SPANISH"
        android:textSize="18sp"/>

    <CheckBox
        android:id="@+id/cb_french"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/cb_german"
        android:layout_alignBottom="@+id/cb_german"
        android:layout_alignEnd="@+id/textView5"
        android:layout_marginEnd="49dp"
        android:button="@null"
        android:drawableEnd="?android:attr/listChoiceIndicatorMultiple"
        android:text="FRENCH"
        android:textSize="18sp"/>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/cb_german"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="35dp"
        android:text="Submit"
        android:textSize="20sp"/>


</RelativeLayout>
.

Java Activity


File: MainActivity.java

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity
{

  private RadioGroup radioGroup;

  private String chosenGender = "MALE";

  private CheckBox english, french, german, spanish;

  private Button buttonCheck;


  @Override
  protected void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_main);

    getWidgets();
  }

  private void getWidgets()
  {
    // Radio Group
    radioGroup = (RadioGroup) findViewById(R.id.radio_group);
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
    {
      @Override
      public void onCheckedChanged(RadioGroup group, int checkedId)
      {
        // find which radio button is selected
        if (checkedId == R.id.radio_male)
        {
          chosenGender = "MALE";
          Toast.makeText(getApplicationContext(), "You Selected: " + chosenGender, 
          Toast.LENGTH_SHORT).show();
        }
        else
        {
          chosenGender = "FEMALE";
          Toast.makeText(getApplicationContext(), "You Selected: " + chosenGender, 
          Toast.LENGTH_SHORT).show();
        }
      }
    });

    // CheckBoxes
    english = (CheckBox) findViewById(R.id.cb_english);
    german = (CheckBox) findViewById(R.id.cb_german);
    spanish = (CheckBox) findViewById(R.id.cb_spanish);
    french = (CheckBox) findViewById(R.id.cb_french);

    // Submit Button
    buttonCheck = (Button) findViewById(R.id.button);

    /*
      OnClickListener : Evaluates each checkbox to see if its checked
      If checked, checkbox text is appended to StringBuilder
     */
    buttonCheck.setOnClickListener(new View.OnClickListener()
    {
      @Override
      public void onClick(View view)
      {
        StringBuilder sb = new StringBuilder();

        if (english.isChecked())
        {
          sb.append("\n" + english.getText());
        }

        if (german.isChecked())
        {
          sb.append("\n" + german.getText());
        }

        if (spanish.isChecked())
        {
          sb.append("\n" + spanish.getText());
        }

        if (french.isChecked())
        {
          sb.append("\n" + french.getText());
        }

        if (sb.length() < 1)
        {
          sb.append("\n● NONE");
        }

        Toast.makeText(MainActivity.this, "Gender: " + chosenGender + 
        "\n\nLanguages:\n" + sb.toString(), Toast.LENGTH_SHORT).show();
      }
    });

  }

}






Result:

No comments:

Post a Comment