2013-06-17 7 views
5

Sto usando il seguente codice per visualizzare una finestra di avviso con due pulsanti. Ma se la finestra di dialogo non è disordinata quando l'attività è in pausa, genera un errore. So che puoi chiudere una finestra di dialogo usando .dismiss ma questo è un AlertDialog Builder non una finestra di dialogo. Qualche idea su come fare questo?Ignora il generatore di finestre di dialogo di avviso da onpause

AlertDialog.Builder alertDialog = new AlertDialog.Builder(MyActivity.this); 

       // Setting Dialog Title 
       alertDialog.setTitle("Title"); 

       // Setting Dialog Message 
       alertDialog.setMessage("Message"); 

       // Setting Positive "Yes" Button 
       alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog,int which) { 
         //yes 
         dialog.cancel(); 

        } 
       }); 

       // Setting Negative "NO" Button 
       alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         //no     
        dialog.cancel(); 
        } 
       }); 

       // Showing Alert Message 
       alertDialog.show(); 
+0

E riguardo dialog.cancel? –

risposta

7

È possibile ottenere l'AlertDialog quando mostra la finestra di dialogo:

private AlertDialog dialog; // instance variable 

dialog = alertDialog.show(); // show and return the dialog 

Nel onPause si può respingere l'AlertDialog:

@Override 
protected void onPause() { 
    super.onPause(); 
    if (alertDialog != null) { 
     alertDialog.dismiss(); 
    } 
} 

BTW l'AlertDialog.Builder è un costruttore perché si può utilizzare il builder pattern in questo modo:

dialog = AlertDialog.Builder(MyActivity.this) 
    .setTitle("Title"); 
    .setMessage("Message") 
[...] 
    .show(); 
+0

Ho scoperto che questo non ha funzionato per me perché alertDialog.show(); restituisce vuoto invece del previsto AlertDialog. Grazie comunque comunque. –

Problemi correlati