2017-04-19 141 views
0

在android應用程序中,我向用戶顯示了一個沒有按鈕的AlertDialog,只是一條消息。我如何以編程方式銷燬AlertDialog,以便它不再可見?我試着用cancel()和dismiss(),但他們不工作,視圖仍然存在。如何以編程方式刪除AlertDialog

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

然後我試圖

test.show().cancel()

test.show().dismiss() 

,但不工作。

+0

http://stackoverflow.com/a/14445953/5188051檢查出 –

回答

4

您應該引用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 
+0

謝謝你的工作,你是第一個。 – Nadir

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

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

後來你想隱藏它:

dialog.dismiss(); 
+0

非常感謝 – Nadir

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; 
    } 
})