Как можно раздувать макет, содержащий просмотр списка в диалоговом окне оповещения? - PullRequest
12 голосов
/ 14 октября 2011

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

           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 Ответ

17 голосов
/ 14 октября 2011

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

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

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