2017-04-19 10 views
0

アンドロイドアプリケーションでは、ボタンなしでメッセージを表示する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; 
    } 
}) 
関連する問題