Android: принудительное восстановление диалога - PullRequest
0 голосов
/ 18 ноября 2011

Я использую пользовательский класс диалогового окна android datelider , чтобы позволить пользователю редактировать дату для нескольких разных строк таблицы.

Слайдер даты позволяет пользователю ограничивать выбор дат только между минимальной и максимальной датами, которые вы можете указать.

Для каждой строки таблицы требуется, чтобы ползунок даты ограничивал пользователя другой минимальной датой и максимальной датой, однако, поскольку вы указываете минимальную и максимальную даты в методе onCreateDialog, мне нужно иметь возможность динамически изменять эти даты, когда пользователь щелкает строка.

Я попытался снова вызвать метод onCreateDialog, когда пользователь щелкает диалоговое окно, и оно запускается, однако новые ограничения не учитываются, что свидетельствует о том, что вместо этого по-прежнему используется первоначально созданный диалог.

Как бы я пошел к достижению своей цели?

Спасибо, Макс.

1 Ответ

1 голос
/ 18 ноября 2011

Если вам нужно изменить диалоги перед их использованием, вам нужно использовать onPrepareDialog.

Обновление:

Диалог, который передается в onPrepareDialog, - это диалог, созданный в onCreateDialog. Измените его так, как вам нравится (не создавайте новый). Возможно, вам придется добавить некоторые сеттеры в свой класс диалогового окна:

protected void onPrepareDialog(int id, Dialog dialog) {
    switch(id) {
    case YOUR_DIALOG_ID:
        YearMonthDayHourMinute myDialog = (YearMonthDayHourMinute) dialog;
        myDialog.setInitialTime(initialTime);
        myDialog.setMinTime(minTime);
        myDialog.setMaxTime(maxTime);
        break;
    }
}
...