最終更新:2016-03-18 (金) 17:33:48 (2932d)
Android/イベント処理
Android/イベントハンドラ
- 優先順位:上位のView>下位のView>Activity
- 例
- View.onTouchEvent
- Activity.onTouchEvent - Viewで消費されなかった場合、呼び出される
- 例
onTouchEvent
- View.onTouchEvent - Called when a touch screen motion event occurs.
- Activity.onTouchEvent - Called when a touch screen event was not handled by any of the views under it.
onKeyDown?
- View.onKeyUp?(int keyCode, KeyEvent event)
- Activity.onKeyDown(int keyCode, KeyEvent event)
その他
- onFocusChanged?
- Activity.onKeyDown - キーを押したとき又は押し続けたときにコール
- Activity.onKeyUp? -
- Activity.dispatchKeyEvent - キーを押したとき, 押し続けたとき, あるいはキーを押すのをやめたときににコール
- Activity.onTrackballEvent?
GestureDetector
- ViewのonTouchEventを委譲することにより、より抽象度の高い、ジェスチャを捕捉することができるようになる
Android/レイアウト
Android/イベントリスナ
- Android/インターフェイス?を実装して使う。
ボタンにView.OnClickListenerを実装
- 匿名クラスを使う
Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MyActivity.this, "クリックされました!", Toast.LENGTH_LONG).show(); } });
ActivityでView.OnClickListenerを実装
public class HogeActivity extends Activity implements OnClickListener{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //buttonを取得 Button btn = (Button)findViewById(R.id.Button01); btn.setOnClickListener(this); } //インターフェイスを実装 implements OnClickListener public void onClick(View v) { // TODO 自動生成されたメソッド・スタブ Toast.makeText(this, R.string.message , Toast.LENGTH_LONG).show(); } }
android.view.View/インターフェイス
- View.OnAttachStateChangeListener?
- View.OnClickListener
- View.OnCreateContextMenuListener?
- View.OnDragListener?
- View.OnFocusChangeListener?
- View.OnGenericMotionListener?
- View.OnHoverListener?
- View.OnKeyListener?
- View.OnLayoutChangeListener?
- View.OnLongClickListener
- View.OnSystemUiVisibilityChangeListener?
- View.OnTouchListener