2012-05-23 13 views
29

Creare uno AlertDialog con un AlertDialog.Builder e impostare alcuni elementi con setItems(). La finestra di dialogo è mostrata ma non riesco a vedere nessuno degli elementi. Tutto quello che vedo è il messaggio.Impossibile visualizzare gli elementi di AlertDialog

final CharSequence[] items = {"Red", "Green", "Blue"}; 

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); 
dialogBuilder.setMessage("Pick a color"); 
dialogBuilder.setItems(items, new DialogInterface.OnClickListener() {   
    public void onClick(DialogInterface dialog, int which) { 
     // Do anything you want here 
    }  
}); 

dialogBuilder.create().show(); 

Se ho impostato il PositiveButton, posso vedere che il pulsante più che bene. Ho anche provato a impostare MultiChoiceItems e SingleChoiceItems ma nessuno dei due funziona neanche.

+5

Prova a usare 'setTitle' invece 'setMessage'. Suppongo che il costruttore stia creando una normale finestra di dialogo per questo. – Knickedi

+0

Oh sì, non l'ho notato .. Funziona, grazie! Come posso contrassegnare questo post come "risposta"? –

risposta

117

Utilizzare setTitle anziché setMessage che imposta il corpo del messaggio e sovrascrive l'elenco di elementi.

+2

è abbastanza difficile individuarlo quando si utilizzano gli elementi dell'elenco insieme alla finestra di avviso. – Zoombie

+0

Questo dovrebbe essere stato dichiarato nei documenti. Grazie, la tua risposta mi ha salvato la giornata – Armando

+0

Come si può avere entrambi? Articoli e messaggi? – Pierre

0

utilizzare al di sotto Codice: -

final CharSequence[] items = {"Red", "Green", "Blue"}; 
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); 
dialogBuilder.setTitle("Pick a color"); 
dialogBuilder.setItems(items, new DialogInterface.OnClickListener() { 

    public void onClick(DialogInterface dialog, int which) { 
     // Do anything you want here 
    } 

}); 
dialogBuilder.create().show(); 
0

provare questo

final CharSequence[] items = {"Red", "Green", "Blue"}; 
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); 
dialogBuilder.setTitle("Pick a color"); 
dialogBuilder.setSingleChoiceItems(items,-1, new DialogInterface.OnClickListener() 
@Override 
public void onClick(DialogInterface dialog, int which) 
{ 
} 
}); 
dialogBuilder.show(); 
+0

'setSingleChoiceItems' è essenzialmente lo stesso di' setItems': è ancora esclusivo con 'setMessage'. L'unica differenza è che se si implementa una selezione persistente viene visualizzato un pulsante di opzione per "scelta singola". – TWiStErRob

2

Perché non si va per setTitle al posto del setMessage? Prova con setTitle("Pick a color").

Spero che ti possa aiutare.

0

Prova alertDialogBuilder.setCustomTitle(view)

0

Se si utilizza una matrice di stringhe risorsa che deve includere l'imballaggio delle risorse. context(). GetResources(). GetStringArray (R.array.items);

La mia lista non è stata visualizzata utilizzando R.array.items fino a quando non ho dato al puntatore il contesto e l'imballaggio delle risorse.

Buona fortuna!

Problemi correlati