イベント
■イベントリスナー(匿名クラス)
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); }