2011-10-14 7 views
10

레이아웃에서 사용자 정의 어댑터와 함께 listview를 사용하고 있습니다. 이제 해당 레이아웃을 내 alertdialog에 포함하려고합니다. 나는 목록을 포함하지 않는 간단한 레이아웃을 가져 와서이 코드로 다이얼로그에 경고하고 그 코드가 잘 작동하도록 노력했다. 그러나 레이아웃이 포함 된 목록을 alertdialog로 가져올 수 없습니다.경고 대화 상자에서 listview가 포함 된 레이아웃을 부 풀릴 수있는 방법은 무엇입니까?

  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

당신이 잘못된 응용 프로그램과 함께 일어나는 것을 자세히 설명 할 수

당신은 같은 것을 할 필요가? 강제 종료 또는 목록보기가 표시되지 않습니다. –

답변

14

경고 대화 상자를보기 만하면됩니다. 해당 목록 뷰에서 어댑터를 설정하지 않으므로 물론 비어있는 상태에서 작동하지 않는 것처럼 보일 것입니다.

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

null을 layoutInflater의 루트보기로 전달하지 마십시오. 이 작업이 어댑터 내부에서 수행되면 rootview 또는 convertview 또는이 경고 대화 상자를 호스팅하는 모든보기를 전달할 수 있습니다 – Odaym