2012-04-28 3 views
5

Ich versuche, meine AlertDialog mit einer benutzerdefinierten Listenansicht zu haben, aber es scheint nicht zu bekommen, dass es ohne Fehler angezeigt oder ausgeführt wird.Benutzerdefinierte Listenansicht für 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(); 
    } 

Das ist mein Alertdialog ist aber nicht herausfinden kann, was, verwendet Listenansicht & listrow werden hinzufügen, um mein benutzerdefiniertes Layout zu erhalten. Ich habe mich online nach Guides umgeschaut, aber nichts, was sie zeigen, scheint für mich zu funktionieren. IE Ich muss etwas falsch machen.

EDIT: Code geändert, um Antwort zu enthalten, aber hat keine Änderung, was auf dem Bildschirm angezeigt wird. Keine Fehler, aber keine Veränderung im Aussehen.

+0

könnten Sie bitte die Logcat Ausgang für das zur Verfügung stellen Fehler Sie erhalten – Toorop

Antwort

10

Wenn Sie ein eigenes Layout haben, dass Sie Ihre Alertdialog übergeben wollen versuchen:

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

Wenn Sie Hörer definieren wollen versuchen:

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

Muss ich SetSingleChoiceItems herausnehmen und den AlertDialog behandeln, als ob es eine Aktivität ListView war? – maebe

+0

Das könnte am einfachsten sein. – Sam