////
TOP目次
2012年05月31日

イベントとは・・・


RPGなどでよく聞く用語としてイベントというものがあります
これはユーザーや自身の任意のタイミングでなにかを起こすといったことにに当たります
具体的には使用者が“タッチした”“傾けた”“ボタンを押した”等の行動を起こしたり
自分で設定した“10分経過”などが起こったら
なんらかのアクションを起こすことをイベントといいます

ウィジェットのイベント処理
アンドロイドでウィジェットのイベントの処理をおこなうには
イベントリスナーと呼ばれるインターフェースインプリメントしたクラスを作成して
このクラスをウィジェットと結び付けます
インプリメントとは・・・
そのインターフェイスをクラス内で使用できるよう
適応させることになります
わかりやすくたとえると
パソコン(クラス)にプリンタードライバ(インターフェイス)をインストール(インプリメント
という感じですw
イベント処理を記述するクラスにView.OnClickListenerインターフェースをインプリメント
setOnClickListenerを使ってこのクラスと結びつけます
MainActivity.java
package blog.test;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

 


public class MainActivity extends Activity {
	
	
	//RadioGroup group;

	@Override
	public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
		
		//テキストビュー作成
        TextView tv = new TextView(this);
        tv.setText("イベント発生前");
        setContentView(tv);
        //ClickListenerと結びつける
        tv.setOnClickListener(new ClickListener());
    }
}

//OnClickListenerをインプリメントしたオリジナルのクラス作成
class ClickListener implements View.OnClickListener {
    public void onClick(View v) {
        ((TextView)v).setText("クリックイベントが発生しました");
    }
}
これはTextViewがクリックされた時にonClickメソッドが呼び出され
クリックされたTextViewの文字を変更させています
device122.png

TextViewをクリックすると・・・
device123.png

イベント処理は通常Viewクラスの引数を持ち
その値はイベントの発生源となったオブジェクトを指しています
今回の場合は“tv”すなわちクリックされたテキストビューのことです
スポンサードリンク

posted by kenken at 10:09 | Comment(0) | TrackBack(0) | イベント イベント処理 | このブログの読者になる | 更新情報をチェックする
2012年05月30日

ラジオボタンが押さた時のイベントを取得


前回はレイアウトまたあアクティビティにラジオボタンを配置しました
ラジオボタンを作成する
今回は作成したラジオボタンがグループ内で変化したときのイベントを取得したいと思います
ちなみに今回はlayout/mainで生成したラジオボタン(静的)を使用したい思います

クリックイベントを取得する為にはRadioGroup.OnCheckedChangeListenerを使用します
これをradioGroupに設定させることで
イベントが取得された際にonCheckedChangedが実行されます
onCheckedChangedの引数の1つ目がそのクリックされたradioGroup
2つ目がクリックされたradioButtonになります
今回は押されたラジオボタンのテキストをログ出力したいと思います
MainActivity.java
package blog.test;
 
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.RadioGroup;
 


public class MainActivity extends Activity {
	
	
	//RadioGroup group;

	@Override
	public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	
		 setContentView(R.layout.main);
	final RadioGroup group = (RadioGroup)findViewById(R.id.radiogroup_id);
	
	//ラジオボタンが変化した時のイベントを取得
	group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

		public void onCheckedChanged(RadioGroup arg0,int arg1){  
			 if(arg0 == group){  
			 switch(arg1){
			 //ラジオボタン1が押されたとき
			 case R.id.radioButton1:  
				 Log.i("tag","radioButton1");  
			 break;  
			//ラジオボタン2が押されたとき
			 case R.id.radioButton2:  
				 Log.i("tag","radioButton2");  
			 break;  

			 }  
			 }
		}
	});
	}
}
onCheckedChangedの引数の1つ目をgroupだったとき
switch以下が実行され第2引数をcase分けしてLogを出力しています

これを実行すると前回と同じような画面が出ます
device120 .png

ラジオボタン2を押すとラジオボタン1の選択が解除されるのがわかります
device121 .png

ボタンをカチカチやるとログが出力されているのがわかります
device122 .png
スポンサードリンク

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。