2010-07-24 24 views
8

Qualcuno potrebbe spiegare quale contesto dovrei usare la classe AlertDialog.Builder? Sono nuovo nello sviluppo di app Android e francamente non capisco quale contesto usare quando?in quale contesto dovrei usare AlertDialog.Builder?

Say, voglio creare un oggetto per la classe AlertDialog.Builder -

AlertDialog.Builder ab = new AlertDialog.Builder(); 
ab.setMessage("Test"); 

ab.show(); 

quale contesto devo usare altrove? Differisce se utilizzo la finestra di dialogo di avviso onCreate o OnClickListener o nel gestore di tali eventi?

risposta

4

Nella prima versione della mia app ho commesso l'errore di non utilizzare onCreateDialog e invece ho creato e mostrato le finestre di dialogo. Se lo fai tu stesso devi occuparti di cose come chiudere la finestra di dialogo prima che l'attività sia finita() altrimenti si verificherà una finestra.

Sostituire onCreateDialog nella propria attività e restituire ab.create() (not show()). onCreateDialog gestirà quindi la visualizzazione della finestra di dialogo e dovrai chiamare showDialog (id).

11

È necessario utilizzare il contesto dell'attività da cui viene eseguito. In altre parole, usa solo YourNameOfActivity.this come contesto.

1
AlertDialog.Builder ab = new AlertDialog.Builder(this); 
ab.setMessage("Test") 
    .show; 

(o) se volete (sì, no) Pulsante significa utilizzare questa

AlertDialog.Builder ab = new AlertDialog.Builder(this); 
ab.setMessage("Are you sure you want to exit?") 
    .setPositiveButton("Yes", dialogClickListener) 
    .setNegativeButton("No", dialogClickListener) 
    .show();