2011-10-14 33 views
10

Tôi đang sử dụng chế độ xem danh sách với bộ điều hợp tùy chỉnh trong bố cục. Bây giờ tôi đang cố gắng để mang lại cho rằng bố trí có chứa danh sách để alertdialog của tôi. Tôi đã cố gắng đưa các bố cục đơn giản không chứa danh sách để cảnh báo hộp thoại với mã này và nó hoạt động tốt. Nhưng tôi không thể đưa danh sách chứa bố cục vào alertdialog.Làm cách nào để tăng bố cục chứa listview trong hộp thoại cảnh báo?

  AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
      dialog.setView(getLayoutInflater().inflate(R.layout.smill, null)); 
      dialog.setIcon(R.drawable.androidsmile); 
      dialog.setInverseBackgroundForced(true); 


      dialog.setTitle("Select smiley"); 
      dialog.setPositiveButton("Cancel", null); 
      dialog.show(); 
+1

bạn có thể xây dựng những gì sai xảy ra với ứng dụng của bạn? hiện nó buộc đóng hoặc listview không được hiển thị hoặc bất cứ điều gì khác. –

Trả lời

14

Tất cả những gì bạn đang làm là tăng lượt xem vào hộp thoại cảnh báo của bạn. Bạn không thiết lập bộ điều hợp trên listview vì vậy tất nhiên nó sẽ xuất hiện để không được làm việc (kể từ khi nó trống).

Bạn cần phải làm một cái gì đó như:

View view = getLayoutInflater().inflate(R.layout.smill, null) 
ListView listView = (ListView) view.findViewById(R.id.listView); 
YourCustomAdapter adapter = new YourCustomAdapter(parameters...); 
listView.setAdapter(adapter); 

AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
dialog.setView(view); 
... 
... 
dialog.show(); 
+2

tránh bỏ qua null làm chế độ xem gốc cho layoutInflater. Nếu điều này được thực hiện bên trong bộ điều hợp của bạn, bạn có thể vượt qua rootview hoặc convertview hoặc bất kỳ chế độ xem nào đang lưu trữ hộp thoại cảnh báo này – Odaym

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