Androidプログラマへの道 〜 Moonlight 明日香 〜 - チェックボックスが押されると....

CheckedChangeイベントを処理する

チェックボックスをクリックしてチェック状態を変更するとCheckedChangeイベントを発生するので, このCheckedChangeイベントを処理するイベントリスナを設定する.
    • findViewByIdメソッドで, 指定したリソースインデックスのIDに対応したチェックボックスのインスタンスを取得する.
    • CompoundButton.OnCheckedChangeListenerインタフェースを実装したオブジェクトをイベントリスナとして設定する.
    • onCheckedChangedメソッドにチェック状態が変更されたときの処理を記述する.
package com.moonlight_aska.android.checkbox01;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.CheckBox;
import android.widget.CompoundButton;

public class CheckBox01 extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final CheckBox chkbox = (CheckBox)findViewById(R.id.checkbox_id);
    chkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
      // チェック状態が変更された時のハンドラ
      @Override
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        // TODO Auto-generated method stub
        // チェック状態が変更された時の処理を記述
        if(chkbox.isChecked() == true) {
          Log.v("OnCheckedChanged", "Check true");
        }
        else {
          Log.v("OnCheckedChanged", "Check false");
        }
      }
    });
  }
}


Clickイベントを処理する

チェックボックスをクリックするとClickイベントを発生するので, このClickイベントを処理するイベントリスナを設定する.
    • findViewByIdメソッドで, 指定したリソースインデックスのIDに対応したチェックボックスのインスタンスを取得する.
    • View.OnClickListenerインタフェースを実装したオブジェクトをイベントリスナとして設定する.
    • onClickメソッドにクリックされたときの処理を記述する.
package com.moonlight_aska.android.checkbox01;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;

public class CheckBox01 extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final CheckBox chkbox = (CheckBox)findViewById(R.id.checkbox_id);
    chkbox.setOnClickListener(new View.OnClickListener(){
      // チェックボックスがクリックされたと時のハンドラ
      @Override
      public void onClick(View v) {
        // TODO Auto-generated method stub
        // クリックされた時の処理を記述
        if(chkbox.isChecked() == true) {
          Log.v("OnClick", "Check true");
        }
        else {
          Log.v("OnClick", "Check false");
        }
      }
    });
  }
}