如何以编程方式删除AlertDialog

时间:2017-04-19 15:30:16

标签: android android-alertdialog

在Android应用程序中,我向用户显示没有按钮的AlertDialog,只显示一条消息。如何以编程方式销毁AlertDialog以使其不再可见?我尝试使用cancel()和dismiss(),但它们不起作用,视图仍在那里。

HTML

然后我试了

AlertDialog.Builder test = new AlertDialog.Builder(context); test.setTitle("title"); test.setCancelable(true); test.setMessage("message..."); test.create().show();

test.show().cancel()

但没有工作。

3 个答案:

答案 0 :(得分:8)

您应该参考AlertDialog本身,而不是构建器。

AlertDialog.Builder test = new AlertDialog.Builder(context);
test.setTitle("title");
test.setCancelable(true);
test.setMessage("message...");
ALertDialog testDialog = test.create();
testDialog.show();  // to show
testDialog.dismiss();  // to dismiss

答案 1 :(得分:4)

AlertDialog.Builder test = new AlertDialog.Builder(context);
...

AlertDialog dialog = test.create().show();

稍后你想隐藏它:

 dialog.dismiss();

答案 2 :(得分:0)

如果用户触摸

,请将此alertDialog.setCanceledOnTouchOutside(true);添加到关闭对话框

或点击设备返回按钮

alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
    @Override
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            alertDialog.dismiss();
            return true;
        }
        return false;
    }
})