2011-10-26 21 views
6

Ciao a tutti sto creando una finestra di avviso in Android facendo clic su un pulsante. Ho usato la proprietà onClick di XML e la funzione di chiamata. il mio codice èLa finestra di dialogo degli avvisi non viene visualizzata

public void selectPhoneType(View view) 
{ 
    String [] item = {"Home", "Work", "Mobile", "Work Fax", "Home Fax", "Pager", "Other", "Custom"}; 
    AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 
    builder.setTitle("Select Label"); 
    AlertDialog alert = builder.create(); 
    alert.show();} 

ma questo codice non sta mostrando avviso e dando errore come

BadTokenException: Unable to add window -- token null is not for an application. 

Ti prego, dimmi che cosa c'è di sbagliato in questo codice.

+2

prova: nuova AlertDialog.Builder (questo) – anfy2002us

+1

hey grazie il suo lavoro, ma ti prego di spiegare che cosa è la differenza tra questo e getAplicationContext? –

risposta

17

Penso che questo sia il problema. Hai provato:

new AlertDialog.Builder(YourActivityClassName.this); 
+1

sì, non l'ho provato, ma dopo averlo fatto funziona. Come? Per favore, spiegami. –

+1

Si stava aggiungendo il contesto dell'intera applicazione e non l'attività specifica che si voleva mostrare alla finestra di dialogo. C'è un po 'più di una spiegazione in fondo a questo post del blog. http://tech.shantanugoel.com/2010/07/08/badtokenexception-android-dialog-getapplicationcontext.html – NotACleverMan

+1

Grazie davvero buono. –

Problemi correlati