2011年7月21日木曜日

[Android] チェックボックスの制御をする

一日のTODOリストを作成中です。
最初なのでチェックボックスの制御方法など。

まずはチェックボックスを作ります。






















とりあえずこんだけ。
これ自体はXMLの記述だけなのでLayoutのXMLに延々とチェックボックスを追加するだけです。

    
    
    


LinearLayoutの中にチェックボックスを追加するだけの簡単なお仕事。
もちろんチェックボックスが動作しないと話にならないのでコードも書きます。
今回は簡易的にチェックボックスにチェックが入ったらトーストを出力するだけにしましょう。
イメージとしてはこんな感じ。






















クリック時の動作はコードに書きます。
OnClickListenerをはっておいて、クリック時のイベントを拾います。
チェックボックスが複数なのでチェックボックスのIDによって処理を振り分けます。

処理としてはこんな感じです。

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.Toast;

public class CheckActivity extends Activity implements OnClickListener {
 
 CheckBox mCheckTooth;
 CheckBox mCheckHair;
 CheckBox mCheckBody;
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mCheckTooth = (CheckBox)findViewById(R.id.toothCheck);
        mCheckHair = (CheckBox)findViewById(R.id.hairCheck);
        mCheckBody = (CheckBox)findViewById(R.id.bodyCheck);
        
        mCheckTooth.setOnClickListener(this);
        mCheckHair.setOnClickListener(this);
        mCheckBody.setOnClickListener(this);
        
    }
  
 @Override
 public void onClick(View view) {
  
  switch (view.getId()) {
  case R.id.toothCheck:
   if(mCheckTooth.isChecked()) {
    // 歯を磨いた
    Toast.makeText(this, "歯を磨いたね", Toast.LENGTH_LONG).show();
   } 
   break;
  case R.id.hairCheck:
   if(mCheckHair.isChecked()) {
    // 髪を洗った
    Toast.makeText(this, "髪を洗ったね", Toast.LENGTH_LONG).show();
   }
   break;
  case R.id.bodyCheck:
   if(mCheckBody.isChecked()) {
    // 体を洗った
    Toast.makeText(this, "体を洗ったね", Toast.LENGTH_LONG).show();
   }
   break;
  default:
   Toast.makeText(this, "何したんだ!!", Toast.LENGTH_LONG).show();
   break;
    
  }
  
 }
}

こうすると押されたチェックボックスに対応して処理が変化します。
(上記の場合はメッセージが変化します)



チェックボックスの簡単な使い方はこんな感じです。

0 件のコメント:

コメントを投稿