У меня есть TextView в моей деятельности, которая используется для отображения даты. Когда пользователь нажимает на TextView, я запускаю DatePickerDialog следующим образом:
public void onClick(View v) {
if (v.getId() == R.id.date_wrapper) {
showDialog(DATE_DIALOG_ID);
}
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
GregorianCalendar date = new GregorianCalendar();
if (mData != null) {
date.setTimeInMillis(mData.getDate());
}
return new DatePickerDialog(this, datePickerListener, date.get(Calendar.YEAR), date.get(Calendar.MONTH), date.get(Calendar.DAY_OF_MONTH));
}
return null;
}
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
// when dialog box is closed, below method will be called.
public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) {
GregorianCalendar selectedDate = new GregorianCalendar();
selectedDate.set(Calendar.YEAR, selectedYear);
selectedDate.set(Calendar.MONTH, selectedMonth);
selectedDate.set(Calendar.DAY_OF_MONTH, selectedDay);
mData.setDate(selectedDate.getTimeInMillis());
populateDate();
}
};
Это прекрасно работает. Однако, когда пользователь нажимает кнопку отправки, я хочу установить дату на сегодняшний день. Я могу легко установить переменную Date объекта mData на сегодняшний день. Однако я не уверен, как обновить DatePickerDialog. Он уже создан, поэтому нажатие на TextView не запустит повторно onCreateDialog. Итак, когда я нажимаю на TextView, открывается DatePickerDialog, и это последняя дата, которую я выбрал.
Как мне сослаться на DatePickerDialog, чтобы обновить дату? Уничтожение DatePickerDialog также было бы приемлемым.
showDialog(MY_ID);
, который является системным методом - person Andrew   schedule 27.11.2012