2012年06月13日

キーを無効にする


イベントからは少し外れますが特定のキーを無効にする方法もあります
無効にしたいキーのイベントが発生したときに
dispatchKeyEventメソッドにおいてtrueを返せば無効にすることができます
dispatchKeyEventは
キーを押したとき・押し続けたとき・キーを離したときに呼び出されます
つまり呼び出されたときにif文で特定のイベント時と
特定のキーが押されたときだけtureを出力すれば無効にすることができます

今回はサンプルプログラムとしてbackキーを無効にしたいと思います
実際にはあまり使うこともありませんが
誤動作で終了させるのを防ぐための処置等に使う・・・かもしれませんw
MainActivity.java
package blog.test;
 

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;

public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
	public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);
}
	
	// dispatchKeyEventを設定
	@Override
	public boolean dispatchKeyEvent(KeyEvent event) {
		//ボタンが押された時を指定
		if(event.getAction() == KeyEvent.ACTION_DOWN) {
			// BACKキーを指定
			if(event.getKeyCode() == KeyEvent.KEYCODE_BACK) {// BACKキー
		return true;
			}
		}
		return super.dispatchKeyEvent(event);
	}
}

これで実行するとbackキーが無効になったためアプリが終了できなくなりましたww Homeキー等で戻ってくださいねw

なおbackキーは他のキーと異なり
キーUP時にdispatchKeyEventメソッドがコールされないようです
またHOMEキーは押してもdispatchKeyEventメソッドがコールされないので
無効化できません
無敵ww
スポンサードリンク

posted by kenken at 15:30 | Comment(0) | TrackBack(0) | イベント イベント処理 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/274880315
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。