2012-04-28 3 views
5

Sto provando ad avere il mio AlertDialog con una visualizzazione elenco personalizzata ma non riesco a farlo visualizzare o eseguire senza errori.Lista lista personalizzata per 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(); 
    } 

Questo è il mio AlertDialog, ma non riesce a capire cosa aggiungere per ottenere il mio layout personalizzati, listview & listrow da utilizzare. Ho dato un'occhiata alle guide online ma nulla di ciò che mostrano sembra funzionare per me. IE Devo fare qualcosa di sbagliato.

MODIFICA: ha modificato il codice per includere la risposta ma non ha modificato ciò che viene visualizzato sullo schermo. Nessun errore ancora nessun cambiamento nel look.

+0

potreste fornire l'output Logcat per la errore che stai ricevendo – Toorop

risposta

10

Se si dispone di un layout personalizzato che si desidera passare alla AlertDialog provare:

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); 

Se si desidera definire ascoltatori provare:

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

Devo eliminare setSingleChoiceItems e trattare il messaggio di avviso come se fosse un elenco di attività? – maebe

+0

Potrebbe essere più semplice. – Sam