我在我的应用程序中显示一个不可取消的对话框,但如果用户按下SEARCH按钮,它将被取消。我试图覆盖onSearchRequested和onKeyDown,但它没有帮助。有什么建议吗?
答案 0 :(得分:3)
我也遇到过这个问题,Jamasan的解决方案对我不起作用。我改为将以下代码添加到我的自定义对话框类(扩展Dialog):
@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。 如果您想允许该活动 由下一个接收器处理,返回 假的。
适合我。
答案 1 :(得分: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(..)只是定期处理它。
祝你好运。