2012-05-23 32 views
29

Creo un AlertDialog con un y establezco algunos elementos con setItems(). Se muestra el cuadro de diálogo pero no puedo ver ninguno de los elementos. Todo lo que veo es el mensaje.No se muestran los elementos de 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(); 

Si fijo el PositiveButton, puedo ver que el botón bien. También intenté configurar MultiChoiceItems y SingleChoiceItems, pero ninguno de estos funciona tampoco.

+5

Trate de usar 'setTitle' en lugar de' setMessage'. Supongo que el constructor está creando un diálogo de mensaje habitual debido a eso. – Knickedi

+0

Oh sí, no se dio cuenta de que ... ¡Funciona, gracias! ¿Cómo puedo marcar esta publicación como "respondida"? –

Respuesta

117

Use setTitle en lugar de setMessage que establece el cuerpo del mensaje y anula la lista de elementos.

+2

es bastante difícil de detectar cuando se utilizan elementos de la lista junto con el cuadro de diálogo de alerta. – Zoombie

+0

Esto debería haberse indicado en los documentos. Gracias, tu respuesta me salvó el día – Armando

+0

¿Cómo se pueden tener ambas? Artículos y mensaje? – Pierre

0

Uso continuación Código: -

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

probar esto

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' es esencialmente lo mismo que' setItems': sigue siendo exclusivo con 'setMessage'. La única diferencia es que si está implementando una selección persistente, se muestra un botón de opción para "opción única". – TWiStErRob

2

¿Por qué no ir a por setTitle en lugar de la setMessage? Pruebe con setTitle("Pick a color").

Espero que te ayude.

0

Trate alertDialogBuilder.setCustomTitle(view)

0

Si está utilizando una matriz de cadenas recurso que debe incluir el empaquetado de recursos. context(). GetResources(). GetStringArray (R.array.items);

Mi lista no se mostraba utilizando los elementos R.array hasta que le di al puntero el contexto y el paquete de recursos.

¡Buena suerte!

Cuestiones relacionadas