どのキーの組み合わせが押されているかをどのように検出できますか?
たとえば、[戻る]ボタンと[メニュー]ボタンが同時に押されていること、または任意のキーの組み合わせを認識したい。
どのキーが押されているかに基づいてアプリケーションを開きたいのですが。
私は簡単な調査を行い、この解決策を見つけました、そしてそれはうまくいくかもしれません。次のコードで押されたメニューキーを検出できます。
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU && event.getAction() == KeyEvent.ACTION_DOWN) {
//Start a new thread here and run a while loop for listening to "back pressed" and trigger the event you want if the back button is pressed
} else {
//stop the started thread above
return false;
}
}
これがお役に立てば幸いです。Thnks。
Daniel Lew が言ったように ( [戻る] ボタンが押されたときに変更を保存するようユーザーに促す):
あなたは正しい軌道に乗っていません。あなたがすべきことは、 onKeyDown() をオーバーライドして戻るキーをリッスンしてから、デフォルトの動作をオーバーライドすることです。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
return true;
}
return super.onKeyDown(keyCode, event);
}
Android 2.0 以降のみをサポートしている場合は、代わりに使用できる onBackPressed() が追加されています。
@Override
public void onBackPressed() {
// do something on back.
return;
}
この回答は、基本的にこのブログ投稿から切り取られています: http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html