在搜索按钮单击时关闭不可取消的对话框

时间:2011-03-04 23:27:38

标签: android android-activity lifetime

我在我的应用程序中显示一个不可取消的对话框,但如果用户按下SEARCH按钮,它将被取消。我试图覆盖onSearchRequested和onKeyDown,但它没有帮助。有什么建议吗?

2 个答案:

答案 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(..)只是定期处理它。

祝你好运。

相关问题