我在我的应用程序中显示了一个不可取消的对话框,但如果用户按下搜索按钮,它就会被取消。我试图覆盖 onSearchRequested 和 onKeyDown,但它没有帮助。有什么建议吗?
问问题
1223 次
2 回答
3
我也遇到了这个问题,Jamasan 的解决方案对我不起作用。我改为将以下代码添加到我的自定义对话框类(扩展对话框)中:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
return true;
} else {
return false;
}
}
keyCode 和 KeyEvent.KEYCODE_SEARCH 都是 int。onKeyDown 的文档说
如果您处理了该事件,则返回 true。如果您想允许下一个接收者处理事件,请返回 false。
为我工作。
于 2011-03-28T15:57:39.943 回答
0
覆盖 Activity 的 onKeyDown 事件,并检查 KEYCODE_SEARCH 是否返回 false
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
char c = (char) event.getUnicodeChar();
if (c == KeyEvent.KEYCODE_SEARCH) {
return false;
} else {
return super.onKeyDown(keyCode, event);
}
}
返回 false 只会阻止该按键(好像它没有发生一样)。否则,运行 super.onKeyDown(..) 只会定期处理它。
祝你好运。
于 2011-03-04T23:53:56.757 回答