如何在DialogFragment中忽略"搜索"键按下

Adi*_*ain 5 android android-keypad android-fragments android-dialog android-dialogfragment

我以前扩展了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
  }
});
Run Code Online (Sandbox Code Playgroud)

我现在正在使用DialogFragment该类进行对话.不幸的是,当按下电话的搜索键时(不管对话框的可取消状态如何),对话框被解除时DialogFragment存在同样的问题.双重问题在于没有方法,因此上述代码段不再适用.DialogDialogFragmentsetOnKeyListener

任何人都知道如何让我的对话框(显示时)忽略搜索键按下?

注意:我尝试将上面的代码段添加到我的activity的onKeyUp 方法中,但不幸的onKeyUp是,如果DialogFragment显示实例,则不会调用我的activity的方法.相反,令人恼火的DialogFragment是,这个 例子被驳回了.

nan*_*esh 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
  }
});
Run Code Online (Sandbox Code Playgroud)