Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

アプリ開発でよく使うコンポーネントである、複数の項目を選択する CheckBox と、候補から1つの項目を選択する RadioButton の使い方を解説します。

チェックボックス (CheckBox)

複数の候補の中から、1つ以上の項目を選択する時にはチェックボックス(CheckBox)コンポーネントを利用します。チェックボックスは ON と OFF の2つの状態を持ち、クリックするたびに2つの状態が切り替わるお馴染みのコンポーネントです。

早速、チェックボックスを置いた画面を作成し、実際に動きを確かめてみましょう。Android Studio を起動し、[新規プロジェクト] から [空のアクティビティ] を選択し、プロジェクトを作成します。

まだ、Android Studio がインストールされていない場合は、以下の記事でPCへのインストール方法を詳しく解説しています。

【関連記事】
Javaで簡単なAndroidゲームアプリを開発(環境準備)

activity_main.xml を開き、パレットから CheckBox を画面に配置します。

レイアウトのXMLは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:padding="20sp"
    tools:context=".MainActivity">

    <CheckBox
        android:id="@+id/checkBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Check1" />

    <CheckBox
        android:id="@+id/checkBox2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Check2" />

</LinearLayout>

動きを確かめてみよう

チェックボックスを配置したら、とりあえずこの状態でアプリを実行して、チェックボックスの動きを確かめてみましょう。

起動すると次のような表示となり、チェックの部分もしくは、文字をクリックするとチェックON/OFF の状態が切り替わります。

チェック状態を切り替えたイベントを取得する

チェックボックスの ON/OFF を切り替えたタイミングで何か処理を行う場合は、Click イベントをリスニングします。

MainActivity.java を開き、チェックボックスの状態変更を監視するリスナーを登録してみましょう。

public class MainActivity extends AppCompatActivity {

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

        //1つ目の CheckBox を取得
        CheckBox checkBox = findViewById(R.id.checkBox);
        //Clickイベントを設定
        checkBox.setOnClickListener(view -> {
            CheckBox c = (CheckBox)view;
            if (c.isChecked()) {
                System.out.println("ONに変更されました");
            } else {
                System.out.println("OFFに変更されました");
            }
        });
    }
}

ラジオボタン (RadioButton)

次は、複数の候補から1つの項目を選択する時に使用するラジオボタン(RadioButton)コンポーネントを使用する方法を解説します。ラジボボタンは、複数の候補の中から1つだけ選択するコンポーネントです。

ラジオボタンを使用するためには、RadioButtonRadioGroup クラスを使用します。RadioGroup に複数の RadioButton を配置し、その中に囲まれた RadioButton の中から1つだけを選択します。

では、RadioButton を実際に置いて、動きを確かめてみましょう。

activity_main.xml を開き、パレットから RadioGroup を2つ、そして RadioGroup の中に RadioButton をそれぞれ2つ配置します。

レイアウトXMLは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:padding="20sp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Group1" />
    <RadioGroup
        android:id="@+id/group1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="RadioButton1" />
        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="RadioButton2" />
    </RadioGroup>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Group2" />
    <RadioGroup
        android:id="@+id/group2"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        <RadioButton
            android:id="@+id/radioButton3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="RadioButton3" />
        <RadioButton
            android:id="@+id/radioButton4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="RadioButton4" />
    </RadioGroup>
</LinearLayout>

動きを確かめてみよう

ラジオボタンを配置したら、アプリを実行して動きを確かめてみましょう。

RadioGroup で囲まれた RadioButton の中で1つだけが選択可能になっているでしょう。

ラジオボタンの選択を切り替えたイベントを取得する

ラジオボタンの選択を切り替えたタイミングで何か処理を行う場合は、RadioGroupCheckedChanged イベントをリスニングします。

MainActivity.java を開き、ラジオボタンの選択変更を監視するリスナーを登録してみましょう。

public class MainActivity extends AppCompatActivity {

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

        RadioGroup group = (RadioGroup)findViewById(R.id.group1);
        group.setOnCheckedChangeListener((view, id) -> {
            if (id == R.id.radioButton1) {
                System.out.println("1つ目が選択されました");
            } else if (id == R.id.radioButton2) {
                System.out.println("2つ目が選択されました");
            }
        });
    }
}

まとめ

Android アプリ開発での、チェックボックスとラジオボタンの使用方法を解説してきました。

この2つのコンポーネントは、アプリ開発の中でも比較的よく使うコンポーネントであるため、ぜひ使用方法を覚えておきましょう。

【関連記事】
電卓アプリのサンプルコード!Java互換のKotlinでAndroidアプリを作る

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。