1

リスト項目がクリックされたときにポップアップするカスタム ビューのダイアログがあります。アクティビティの関数をオーバーライドしてonKeyDown、戻るボタンが押されたときにダイアログが表示されていたかどうかを確認しますが、ダイアログが表示されている場合はonKeyDown呼び出されません。

ダイアログが消えた後に戻るボタンを押しても問題はありませんが、デバイスが回転した場合にダイアログを再ポップアップする必要がある場合は、ダイアログが処理中に戻るボタンが押されたかどうかを知る必要があります。

少し検索したところ、カスタム ダイアログ レイアウトの呼び出しと関係があるようですが、そのダイアログを操作するsetContentView方法が見つかりませんでした。okKeydown

4

1 に答える 1

3

ダイアログの場合、個別のsetOnKeyListenerがあるので、以下のコードを試してください.......そして、私が行ったように、任意のキー押下を追跡できます...

  • keyCode == KeyEvent.KEYCODE_CAMERA
  • keyCode==KeyEvent.KEYCODE_SEARCHなど。

          mProgressDialog.setOnKeyListener(new Dialog.OnKeyListener() {
    
                @Override
                public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                    if ((keyCode == KeyEvent.KEYCODE_CAMERA)) {
                        return true;
                    }
                    if ((keyCode == KeyEvent.KEYCODE_SEARCH)) {
                        return true;
                    }
                    return false;
                }
            });
    
于 2012-09-10T15:13:32.853 に答える