Как можно раздуть макет, содержащий список в диалоговом окне предупреждения?

Я использую listview с пользовательским адаптером в макете. Теперь я пытаюсь привести этот макет, содержащий список, в мой alertdialog. Я попытался принести простые макеты, не содержащие списка, чтобы предупредить диалог с этим кодом, и он работает хорошо. Но я не могу привести список, содержащий макет, в alertdialog.

           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

Все, что вы делаете, - это раздувание представления в диалоговом окне вашего предупреждения. Вы не устанавливаете адаптер в этом списке, поэтому, похоже, он не будет работать (поскольку он пуст).

Вам нужно сделать что-то вроде:

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