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 回答