phpAndroid開発 虎の巻

イベント

カテゴリ:ユーザインタフェース

■イベントリスナー(匿名クラス)

	Button button = (Button)findViewById(R.id.button1);
	button.setOnClickListener(new View.OnClickListener(){

		@Override
		public void onClick(View v) {
			//	クリック時の処理
		}
		
	});

■イベントリスナー(Activityに実装)

1.アクティビティにOnClickListenerインタフェースを追加

	public class MainActivity extends Activity implements View.OnClickListener{

※QuickFixの「Add umimplement methods」(未実装のメソッドの追加)にてonClickメソッドのオーバーライド

2.onCreate内で Button に setOnClickListener で自分自身を登録

	Button button = (Button)findViewById(R.id.button1);
	button.setOnClickListener(this);

3.クリック時の処理

	@Override
	public void onClick(View view) {
		if( view.getId() == R.id.button1){
			//	クリックされたときの処理
		}
	}

■onTouchイベントリスナー追加

1.アクティビティにOnTouchListenerインタフェースを追加

public class MainActivity extends Activity implements OnClickListener,OnTouchListener{

2.タッチ時の処理

@Override
public boolean onTouch(View v, MotionEvent event) {

	if( v.getId() == R.id.textView1){

		switch( event.getAction() ){

		case MotionEvent.ACTION_DOWN:
			v.setBackgroundColor(Color.RED);
			return true;

		case MotionEvent.ACTION_UP:
			v.setBackgroundColor(Color.WHITE);
			return true;		}
	}
	return false;
}

■そのほかのイベントリスナー

  • OnLongClickListener
  • OnFocusChangeListener
  • OnKeyListener

■キーの検知

ActivityクラスのonKeyDownをオーバーライドする。

	public boolean onKeyDown(int keyCode, KeyEvent event) {
		switch(keyCode){
		case KeyEvent.KEYCODE_BACK:
			Toast.makeText(this, "バック", Toast.LENGTH_SHORT).show();
			return true;			
		}
		return super.onKeyDown(keyCode, event);
	}

カテゴリ:ユーザインタフェースの記事