2015-11-03 14 views
8

Tôi có lớp này:AlertDialog không hiển thị chia trên một danh sách

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


} 

thoại cảnh báo sẽ được mở ra sau khi gọi openDialog() nhưng vấn đề là nó không thể hiện sự chia giữa các mục. Tôi muốn có được điều này:
http://2.bp.blogspot.com/-i00d8VG6WsQ/UrGIeyb-8II/AAAAAAAAHwA/8MPWP5qrQ78/s500/alertdialog-with-simple-listview.png

và, trên thực tế, tôi nhận được nó, nhưng nếu không có sự chia Grey.
Bất kỳ ý tưởng nào về lý do tại sao?

enter image description here

Trả lời

26

Thay đổi AlertDialog Danh sách mục chia màu sắc như:

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

Cảm ơn nhưng tôi không thể truy cập vào .getListView() – JoCuTo

+2

Công việc này! Nhưng bạn phải thay đổi 'Cảnh báo cảnh báoDialogObject = dialogBuilder.create();' thành 'AlertDialog alertDialogObject = dialogBuilder.create(); ' –

+0

yes works! Cảm ơn rất nhiều – JoCuTo

0

Nó có lẽ là bởi vì bạn đang chạy ứng dụng của bạn trên Android 5.0+ trong đó có thiết kế Vật liệu.

Để có được cái nhìn "cũ", chỉ cần xây dựng thoại của bạn với Holo phong cách:

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

Mặc dù điều này có vẻ lạ đối với một số người dùng (đặc biệt là trên Lollipop và Marshmallow, vì vậy tôi khuyên bạn nên nhìn vào sử dụng tùy chỉnh số lượt xem cho hộp thoại của bạn

+0

Cảm ơn Daniel, điểm tốt nhưng không hoạt động, vẫn không có dải phân cách: ( – JoCuTo

+0

Bạn có thể thêm ảnh chụp màn hình về tiến độ hiện tại không? –

+0

ảnh chụp màn hình về thêm – JoCuTo

Các vấn đề liên quan