我之前为我的对话框扩展了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
与Dialog
存在同样的问题,因为当按下电话的搜索键时,对话框被解除(无论对话框的可取消状态如何)。双重问题是DialogFragment
没有setOnKeyListener
方法,因此上述代码段不再适用。
任何人都知道如何让我的对话框(显示时)忽略搜索按键?
注意:我尝试将上述代码段添加到我的活动
onKeyUp
方法,但不幸的是我的活动的onKeyUp
方法没有被调用 如果显示DialogFragment
实例。相反,恼人的,DialogFragment
实例被驳回。
答案 0 :(得分: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
}
});