Как обновить просмотр списка в AlertDialog - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть диалоговое окно, которое содержит просмотр списка, данные представления списка поступают от родителя диалога.Каждый раз, когда диалоговое окно должно отображаться, оно должно получать данные из действия для построения элементов списка.Я знаю, что должен сделать это в onPrepareDialog () , но я не знаю, как обновить представление списка, созданное AlertDialog.builder . Может кто-нибудь мне помочь?

Мой диалог создан из кода ниже:

    new AlertDialog.Builder(this)
                .setTitle(title)
                .setMultiChoiceItems(cityNames(), updateSelections(),
                        new DialogInterface.OnMultiChoiceClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton,  boolean isChecked) {
                                if(isChecked){
                                    selections[whichButton] = true;
    //                              Toast.makeText(MainActivity.this, cities.get(whichButton).getName(), Toast.LENGTH_SHORT).show();
                                }
                            }
                        })
                .setPositiveButton("OK",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {
                                for(int i=0;i<selections.length;i++){
                                    if(selections[i]==true){
                                        removeCityFromScreen(i);
                                    }
                                }
                    }
                })
                .setNegativeButton("Cancel",
                        new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {

                    }
                })
               .create();

Ответы [ 2 ]

2 голосов
/ 26 сентября 2011

Я создаю пользовательский адаптер для просмотра списка ... вот так:

1 голос
/ 26 сентября 2011

Простой ответ: после звонка create() нет возможности обновить список. Строитель раздувает XML и создает пользовательские адаптеры при вызове этого. Я бы рекомендовал создавать / создавать диалоговое окно каждый раз, когда вы собираетесь его отобразить.

Примечание : Конечно, вы можете предоставить пользовательскую настройку AlertDialog с собственной реализацией с множественным выбором. Тогда вы можете легко обновить его, поскольку у вас есть доступ к адаптеру из списка (сравните этот ответ - в этом случае вы можете создать и установить новый адаптер).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...