0

私は次のコードに取り組んでいます:

private class HandleBackButton implements OnKeyListener
    {

        @Override
        public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
            // TODO Auto-generated method stub

            if(arg1==KeyEvent.KEYCODE_BACK)
            {
                showResults(0);
            }
            return true;
        }

    }

私はアンドロイドに少し慣れていません。私の目的は、戻るボタンがクリックされたときに上記のコードを操作することです。ユーザーはいつでも戻るボタンをクリックできます。しかし、どうすればこのリスナーをアクティビティに設定できますか? のようなものが見つかりませんthis.setOnKeyListener()

Android 2.3.3 を使用しています。

4

3 に答える 3

3

onBackPressedアクティビティについては、戻るボタンを押したときに呼び出されるものを オーバーライドする必要があります。OnKeyListenerキーイベントをビューにディスパッチします。View クラスで setOnKeyListener が定義されていることがわかります。

ハードウェア キー イベントがこのビューにディスパッチされたときに呼び出されるコールバックのインターフェイス定義。コールバックは、キー イベントがビューに与えられる前に呼び出されます。これは、ハードウェア キーボードでのみ役立ちます。ソフトウェアの入力メソッドには、このリスナーをトリガーする義務はありません。

于 2013-07-20T09:03:20.903 に答える
2

onKeyDown()Activityのメソッドをオーバーライドするだけです。その場合、リスナーを設定する必要はありません。

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK)
        {
            showResults(0);
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

onBackPressed()オプションで、API レベルが 5 以上の場合はオーバーライドすることもできます。

于 2013-07-20T09:05:32.217 に答える
1

使用できますonBackPressed()

@Override
public void onBackPressed() {
    showResults(0);
}
于 2013-07-20T09:20:57.517 に答える