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