• 検索結果がありません。

2-1 KeyEvent 概要 KeyEvent クラスはアンドロイド端末のキーに対するイベントの定数 基本メソッドを提供するオブジェクトです クラス図は次のようになっています java.lang.object android.view.keyevent 2-2 KeyEvent.Callback

N/A
N/A
Protected

Academic year: 2021

シェア "2-1 KeyEvent 概要 KeyEvent クラスはアンドロイド端末のキーに対するイベントの定数 基本メソッドを提供するオブジェクトです クラス図は次のようになっています java.lang.object android.view.keyevent 2-2 KeyEvent.Callback"

Copied!
14
0
0

読み込み中.... (全文を見る)

全文

(1)

キーイベント 2-1 KeyEvent概要 2-2 KeyEvent.Callback概要 2-3 アクティビティでキーイベントに応答 2-4 ビューでキーイベントに応答 2-5 アクティビティの「dispatchKeyEvent」メソッド 2-6 キーコード定数

(2)

KeyEventクラスはアンドロイド端末のキーに対するイベントの定数、基本メソッドを提供するオブジェクトです。 クラス図は次のようになっています。 java.lang.Object  └ android.view.KeyEvent 2-2 KeyEvent.Callback概要 KeyEvent.Callbackインターフェースはキーイベントの基底コールバック関数を提供しています。 KeyEvent.Callbackインターフェースを継承するクラスには、それぞれのコールバック関数を実装してあれば、 対応するキーイベントに応答が実現出来ます。 アクティビティ、ビュークラスはKeyEvent.Callbackインターフェースを継承しています。 キーイベントのコールバック関数は以下のように三つ用意しています。

boolean onKeyDown(int keyCode, KeyEvent event) キーを押した瞬間に呼ばれるメソッド。

boolean onKeyLongPress(int keyCode, KeyEvent event) キーを押し続いたとき呼ばれるメソッド。

boolean onKeyUp(int keyCode, KeyEvent event) キーを押してからリリースしたとき呼ばれるメソッド。

メソッド 概要

(3)

2-3 アクティビティでキーイベントに応答 2-3-1 「onKeyDown」、「onKeyUp」メソッド

キーダウン(或はキーアップ)イベントが発生する時、アクティビティに「onKeyDown」(或は「onKeyUp」)メソッドを呼び出します。 渡される引数「keyCode」により、押されたキーに特定する対処の実装が出来ます。

サンプルコード

public boolean onKeyDown(int keyCode, KeyEvent event) { switch (event.getKeyCode()) { case KeyEvent.KEYCODE_DPAD_LEFT: // 十字左方キー showToast(this,"左キー(onKeyDown)"); break; case KeyEvent.KEYCODE_DPAD_CENTER: break; default: break; } return super.onKeyDown(keyCode,event); } ※「onKeyUp」メソッドの実装方法は同じなので省略します。

(4)

上記ソースで実行し、左方キーを押すとトーストが現れます。

(5)

2-3-2 「onKeyLongPress」メソッド API level 5 以上 キーを押し続けるイベントが発生する時、アクティビティに「onKeyLongPress」メソッドを呼び出します。 渡される引数「keyCode」により、押されたキーに特定する対処の実装が出来ます。 注意点として、「onKeyLongPress」コールバックを利用するとき、「onKeyDown」コールバックの実装を以下のようにしなければなりません。 ・イベントオブジェクトの「startTracking」メソッドを呼びます。 ・戻り値を「true」に設定します。 サンプルコード

public boolean onKeyLongPress(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: // 十字中央キー TestKeyEvent.showToast(TestKeyEvent.this, "中央キー(onKeyLongPress)"); break; default: break; }

return super.onKeyLongPress(keyCode, event); }

public boolean onKeyDown(int keyCode, KeyEvent event) { event.startTracking();

return true; }

(6)

上記ソースで実行し、中央キーを押し続けるとトーストが現れます。

(7)

2-4 ビューでキーイベントに応答 アクティビティと同じ、ビュークラスはKeyEvent.CallBackインターフェースを継承しますので、 ビュークラスのキーイベントコールバック関数を実装してあれば、キーイベントに応答が出来ます。 2-4-1 「onKeyDown」、「onKeyUp」メソッド キーダウンイベント(或はキーアップ)が発生する時、「onKeyDown」メソッド(或い「onKeyUp」)を呼び出します。 渡される引数「keyCode」により、押されたキーに特定する対処の実装が出来ます。 サンプルコード

public boolean onKeyDown(int keyCode, KeyEvent event) { switch (event.getKeyCode()) { case KeyEvent.KEYCODE_DPAD_LEFT: // 十字左方キー showToast(this,"左キー(onKeyDown)"); break; case KeyEvent.KEYCODE_DPAD_CENTER: break; default: break; } return super.onKeyDown(keyCode,event); } ※「onKeyUp」メソッドの実装方法は同じなので省略します。

(8)

上記ソースで実行し、左方キーを押すとトーストが現れます。

(9)

2-4-2 「onKeyLongPress」メソッド API レベル 5以上 キーを押し続けるイベントが発生する時、ビューの「onKeyLongPress」メソッドを呼び出します。 渡される引数「keyCode」により、押されたのキーに対処する実装が出来ます。 アクティビティと同じ、「onKeyLongPress」コールバックを利用するとき、「onKeyDown」コールバックの実装を以下のようにしなければなりません。 ・イベントオブジェクトの「startTracking」メソッドを呼びます。 ・戻り値を「true」に設定します。 サンプルコード

public boolean onKeyLongPress(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: // 十字中央キー TestKeyEvent.showToast(TestKeyEvent.this, "中央キー(onKeyLongPress)"); break; default: break; }

return super.onKeyLongPress(keyCode, event); }

public boolean onKeyDown(int keyCode, KeyEvent event) { event.startTracking();

return true; }

(10)

上記ソースで実行し、中央キーを押し続けるとトーストが現れます。

(11)

2-5 アクティビティの「dispatchKeyEvent」メソッド KeyEvent.CallBackインターフェースの以外、アクティビティクラスはWindow.CallBackインターフェースも継承しています。 Window.CallBackインターフェースでは「dispatchKeyEvent」コールバック関数を提供しますので、 それを実装してあればキーイベントに応答することも出来ます。 「dispatchKeyEvent」メソッドを実装するとき、引数であるキーイベントの「getAction」、「getKeyCode」メソッドを利用すると、 どのキーイベント及びどのキーの動作を把握でき、それに特定する対処の実装が出来ます。 本サンプルに使われるキーイベントのメソッド サンプルコード

public boolean dispatchKeyEvent(KeyEvent event) { switch(event.getAction()) { case KeyEvent.ACTION_UP: switch (event.getKeyCode()) { case KeyEvent.KEYCODE_DPAD_CENTER: // 十字中央キー showToast(this,"中央キー"); break; default: break; } break; case KeyEvent.ACTION_DOWN: break; default: break; } return super.dispatchKeyEvent(event); } ※ACTION_DOWN:キーが押さえつけるとき発生 ACTION_UP:キーが押してからリリースするとき発生 概要 メソッド

final int getAction() final int getKeyCode()

該当キーイベントの動作をゲットする。(動作:ACTION_DOWN、ACTION_UP※) 該当キーイベントのキーコードをゲットする。

(12)

上記ソースで実行し、中央キーを押すとトーストが現れます。

(13)

2-6 キーコード定数 KEYCODE_0 KEYCODE_A KEYCODE_ALT_LEFT KEYCODE_ALT_RIGHT KEYCODE_AT KEYCODE_BACK KEYCODE_CALL KEYCODE_CAMERA KEYCODE_COMMA KEYCODE_DEL KEYCODE_DPAD_CENTER KEYCODE_DPAD_DOWN KEYCODE_DPAD_LEFT

(14)

KEYCODE_DPAD_UP KEYCODE_ENDCALL KEYCODE_ENTER KEYCODE_HOME KEYCODE_MENU KEYCODE_PERIOD KEYCODE_POWER KEYCODE_SEARCH KEYCODE_SHIFT_LEFT KEYCODE_SLASH KEYCODE_SPACE KEYCODE_SYM KEYCODE_VOLUME_DOWN KEYCODE_VOLUME_UP ※数字キー0から9までのコードは「KEYCODE_0」から「KEYCODE_9」までです。  英文字キーAからZまでのコードは「KEYCODE_A」から「KEYCODE_Z」までです。

参照

関連したドキュメント

 この論文の構成は次のようになっている。第2章では銅酸化物超伝導体に対する今までの研

MENU キーを 3 秒間押して設定モードに入ります。次に ( DISP ) キーと ( FUNC ) キー を同時に 3

この数字は 2021 年末と比較すると約 40%の減少となっています。しかしひと月当たりの攻撃 件数を見てみると、 2022 年 1 月は 149 件であったのが 2022 年 3

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

次に、第 2 部は、スキーマ療法による認知の修正を目指したプログラムとな

本文書の目的は、 Allbirds の製品におけるカーボンフットプリントの計算方法、前提条件、デー タソース、および今後の改善点の概要を提供し、より詳細な情報を共有することです。

エッジワースの単純化は次のよう な仮定だった。すなわち「すべて の人間は快楽機械である」という

2 次元 FEM 解析モデルを添図 2-1 に示す。なお,2 次元 FEM 解析モデルには,地震 観測時点の建屋の質量状態を反映させる。.