Как я могу воссоздать диалог, включая весь его контент? - PullRequest
0 голосов
/ 14 августа 2011

В моем приложении у меня есть 2 вкладки.На каждой вкладке отображаются разные действия.

В Activity_1 я управляю глобальным массивом строк - доступны опции добавления и удаления.

В Activity_2 у меня есть AlertDialog.Диалог создается путем вызова функций диалога Activity: onCreateDialog, onPrepareDialog.В диалоговом окне отображается список с множественным выбором, а источником списка является глобальный массив, которым управляет Activity_1.

Проблема: я хотел бы отобразить обновленный список в диалоговом окне Activity_2 в соответствии с изменениями, внесенными вглобальный массив в Activity_1.Проблема состоит в том, что список создается в onCreateDialog, и этот метод вызывается только один раз в жизненном цикле действия.

Например: если глобальный массив содержит: ["Banana", "Orange"] и в activity_1Я только что добавил: «Яблоко», и я нажал на вкладку № 2, я хотел бы, чтобы Activity_2 открывал диалоговое окно и отображал в списке диалогов: [«Банан», «Апельсин», «Apple»].

Я пытался заполнить список в: onPrepareDialog, но безуспешно, он просто позволяет мне решить, какой из элементов списка будет проверен или нет.Должен ли я расширить AlertDialog?

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 14 августа 2011

Вы можете использовать DialogInterface.OnShowListener для обновления содержимого диалога при каждом его отображении.


Редактировать: Вам нужно реализовать listadpater и установить адаптер для компоновщика.


В onPrepareDialog получите просмотр списка mAlertdlg.getListView() и вызовите notifyDatasetChanged() на его адаптере. Или просто установите адаптер еще раз mAlertdlg.getListView().setAdapter(list)

...