2015-11-03 8 views
8

Ich habe diese Klasse:Alertdialog zeigt nicht Teiler auf einer Liste

public class PageDetailInfoView extends FrameLayout { 

//few constructors and methods 

//method to show an AlertDialog with a list 
private void openDialog(){ 

    List<String> mTags = new ArrayList<String>(); 
    mTags.add("Item1"); 
    mTags.add("Item2"); 
    mTags.add("Item3"); 
    mTags.add("Item4"); 
    mTags.add("Item5"); 
    mTags.add("Item6"); 

    final CharSequence[] tags = mTags.toArray(new String[mTags.size()]); 
    AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); 
    builder.setTitle("Title"); 
    builder.setItems(tags, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int item) { 
     //do something 
     } 
    }); 

    Dialog alertDialogObject = builder.create(); 
    alertDialogObject.show(); 


} 

Der Alert-Dialog wird geöffnet, nachdem Opendialog aufrufen(), aber die Sache ist, dass es nicht die Teiler zwischen den einzelnen Posten nicht aufweist. Ich möchte dies erhalten:
http://2.bp.blogspot.com/-i00d8VG6WsQ/UrGIeyb-8II/AAAAAAAAHwA/8MPWP5qrQ78/s500/alertdialog-with-simple-listview.png

und in der Tat, ich es aber ohne die grauen Teiler.
Irgendeine Idee warum?

enter image description here

Antwort

26

ändern AlertDialog Listenelemente Teiler Farbe:

AlertDialog alertDialogObject = dialogBuilder.create(); 
ListView listView=alertDialogObject.getListView(); 
listView.setDivider(new ColorDrawable(Color.BLUE)); // set color 
listView.setDividerHeight(2); // set height 
alertDialogObject.show(); 
+0

Danke, aber ich kann nicht auf .getListView() zugreifen – JoCuTo

+2

Das funktioniert! Aber Sie müssen 'Dialog ändern alertDialogObject = dialogBuilder.create();' zu 'AlertDialog alertDialogObject = dialogBuilder.create(); ' –

+0

ja funktioniert! Vielen Dank – JoCuTo

0

Es ist wahrscheinlich, weil Sie Ihre App auf Android laufen 5.0+, das Materialdesign hat.

Um den „alten“ Look einfach Ihre Dialog mit dem Stil Holo konstruieren:

ContextThemeWrapper themedContext = new ContextThemeWrapper(getContext(), android.R.style.Theme_Holo_Light_Dialog_NoActionBar); 
AlertDialog.Builder builder = new AlertDialog.Builder(themedContext); 
// ... then create your dialog 

Obwohl dies für einige Benutzer (vor allem auf Lollipop und Eibisch seltsam erscheinen, so in ich empfehlen, sich individuelle Verwendung Ansichten für Ihren Dialog

+0

Danke Daniel, guter Punkt, aber funktioniert nicht, immer noch ohne Teiler :( – JoCuTo

+0

Können Sie vielleicht einen Screenshot über Ihren aktuellen Fortschritt hinzufügen? –

+0

Screenshot über hinzugefügt – JoCuTo

Verwandte Themen