2011-10-14 16 views
10

Estoy usando una vista de lista con un adaptador personalizado en un diseño. Ahora estoy tratando de llevar esa lista que contiene el diseño a mi diagrama de alerta. Traté de traer diseños simples que no contengan una lista para alertar al diálogo con este código y está funcionando bien. Pero no puedo llevar la lista que contiene el diseño a alertdialog.¿Cómo se puede inflar un diseño que contiene la vista de lista en un cuadro de diálogo de alerta?

  AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
      dialog.setView(getLayoutInflater().inflate(R.layout.smill, null)); 
      dialog.setIcon(R.drawable.androidsmile); 
      dialog.setInverseBackgroundForced(true); 


      dialog.setTitle("Select smiley"); 
      dialog.setPositiveButton("Cancel", null); 
      dialog.show(); 
+1

se puede elaborar lo malo sucediendo con su aplicación? forza cerrar o no se muestra listview o cualquier otra cosa. –

Respuesta

14

Todo lo que hace es inflar una vista en su cuadro de diálogo de alerta. No está configurando el adaptador en esa vista de lista por lo que, por supuesto, parecerá que no está funcionando (ya que está vacío).

que tiene que hacer algo como:

View view = getLayoutInflater().inflate(R.layout.smill, null) 
ListView listView = (ListView) view.findViewById(R.id.listView); 
YourCustomAdapter adapter = new YourCustomAdapter(parameters...); 
listView.setAdapter(adapter); 

AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
dialog.setView(view); 
... 
... 
dialog.show(); 
+2

evite pasar nulo como la vista raíz para el layoutInflater. Si esto se hace dentro de su adaptador, puede pasar la vista de raíz o convertview o cualquier vista que aloje este diálogo de alerta – Odaym

Cuestiones relacionadas