Programming Style

メニュー

初心者がアプリ開発者になるためのプログラミング学習サイト

[Android] CheckBox:チェック状態の変化を処理する

android_android-checkbox-cleck-change_1

チェックボックスは、チェック状態変化のイベント受け取ることが出来ます。ここではチェックボックスの状態変化のイベントを処理する方法について説明します。

 

広 告

 

目次

前提条件

動作確認端末

  • Google Nexus 5 – 5.0.0 – API21(エミュレータ)

1. OnCheckedChangeListenerでチェック状態変化を処理する

チェックボックスのチェック状態変化イベントを受け取るためには、CompoundButton.OnCheckedChangeListenerを使います。このインターフェースを実装したオブジェクトをsetOnCheckedChangeListener()メソッドに設定することでチェック状態変化イベントを受け取れるようになります。

以下にサンプルコードを示します。

 

java/<package name>/MainActivity.java

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final CheckBox checkBox = (CheckBox) findViewById(R.id.checkbox);
        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked) {
                    Toast.makeText(getApplication(), "チェックが付いた", Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(getApplication(), "チェックが外れた", Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}

 

res/layout/activity_main.xml

<LinearLayout
    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:orientation="vertical"
    tools:context=".MainActivity">

    <CheckBox
        android:id="@+id/checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/checkbox" />

</LinearLayout>

上記コードは、チェックボックスのチェック状態が変わるとonCheckedChanged()メソッドが実行され、その結果をトーストに表示しています。onCheckedChanged()メソッドの引数は以下のとおりです。

 

説明
第1引数 CompoundButton チェック状態が変化したチェックボタンのインスタンス
第2引数 boolean チェックされた場合は「true」
チャックが外れた場合は「false」

 

アプリを実行すると以下のようになります(チェックボックスのチェックを付けた直後の画面です)。

 

android_android-checkbox-cleck-change_1

 

広 告