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

チェックボックスは、チェック状態変化のイベント受け取ることが出来ます。ここではチェックボックスの状態変化のイベントを処理する方法について説明します。
広 告
目次
前提条件
動作確認端末
- 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」 |
アプリを実行すると以下のようになります(チェックボックスのチェックを付けた直後の画面です)。
