5

以前はダイアログのクラスを拡張していたので、電話の検索キーが押さDialogれたときにダイアログが閉じられないように、ダイアログで次のコードセグメントを使用する必要がありました。

setOnKeyListener(new OnKeyListener()
{
  public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event)
  {
    if (keyCode == KeyEvent.KEYCODE_SEARCH)
      return true; // pretend we've processed it
    else
      return false; // pass on to be processed as normal
  }
});

現在DialogFragment、ダイアログにクラスを使用しています。残念ながら、電話の検索キーが押されたときにダイアログが閉じられるというDialogFragment問題と同じ問題があります(ダイアログのキャンセル可能な状態に関係なく)。二重に問題なのは、メソッドがないため、上記のコードセグメントが適用されなくなったことです。DialogDialogFragmentsetOnKeyListener

検索キーの押下を無視するようにダイアログを(表示時に)取得する方法を知っている人はいますか?

注:上記のコードセグメントをアクティビティのメソッドに追加しようとしましたが、インスタンスが表示されている場合、onKeyUp 残念ながらアクティビティのonKeyUpメソッドは呼び出されません。DialogFragment代わりに、苛立たしいことに、 DialogFragmentインスタンスは却下されます。

4

1 に答える 1

15

これを試して。
あなたの中にDialogFragment.Onresume

 getDialog().setOnKeyListener(new OnKeyListener()
 {
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event){
    if (keyCode == KeyEvent.KEYCODE_SEARCH)
      return true; // pretend we've processed it
    else
      return false; // pass on to be processed as normal
  }
});
于 2012-08-13T17:37:01.930 に答える