2012-04-28 23 views
5

Estoy tratando de tener mi AlertDialog con una vista de lista personalizada pero parece que no se puede mostrar o ejecutar sin error.Vista de lista personalizada para AlertDialog

private void buildDialog(){ 

     int selectedItem = -1; //somehow get your previously selected choice 
     LayoutInflater inflater = ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)); 
     View customView = inflater.inflate(R.layout.listview, null, false); 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setView(customView); 
     builder.setTitle("Select Weapon").setCancelable(true); 
     builder.setSingleChoiceItems(inventory, selectedItem, "Desc", new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) 
      { 
       ListView lv = ((AlertDialog) dialog).getListView(); 
       itemId = lv.getAdapter().getItemId(which); 
       new changeEQ().execute(); 
      } 
     }); 



     dialog = builder.create(); 
    } 

Ésta es mi AlertDialog pero no puede averiguar qué añadir para conseguir mis diseños personalizados, listview & listrow a utilizar. He buscado guías en línea, pero nada de lo que muestran parece funcionar para mí. IE, debo estar haciendo algo mal.

EDITAR: cambió el código para incluir la respuesta pero no tiene ningún cambio en lo que se muestra en la pantalla. Sin errores aún sin cambio de look.

+0

¿Podrían presentar la salida Logcat para el error que está recibiendo – Toorop

Respuesta

10

Si usted tiene un diseño personalizado que desea pasar a su AlertDialog tratar:

LayoutInflater inflater = ((LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)); 
View customView = inflater.inflate(R.layout.custom_dialog, null, false); 
AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setView(customView); 

Si desea definir oyentes tratar:

ListView list = (ListView) customView.findViewById(R.id.listView1); 
list.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     // Do as you please 
    } 
}); 
+0

¿Debo eliminar setSingleChoiceItems y tratar el alertDialog como si fuera una lista de actividades? – maebe

+0

Eso podría ser lo más simple. – Sam

Cuestiones relacionadas