0

どのキーの組み合わせが押されているかをどのように検出できますか?

たとえば、[戻る]ボタンと[メニュー]ボタンが同時に押されていること、または任意のキーの組み合わせを認識したい。

どのキーが押されているかに基づいてアプリケーションを開きたいのですが。

4

2 に答える 2

0

私は簡単な調査を行い、この解決策を見つけました、そしてそれはうまくいくかもしれません。次のコードで押されたメニューキーを検出できます。

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。

于 2012-12-29T07:02:45.613 に答える
0

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

于 2012-12-29T06:24:29.773 に答える