0
我的Activity上有一個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();
}
};
這很好。但是,當用戶點擊提交按鈕時,我想將日期設置回今天。我可以輕鬆地將mData對象的Date變量設置爲今天。但是,我不確定如何更新DatePickerDialog。它已經創建,因此單擊TextView不會再次運行onCreateDialog。所以,當我點擊TextView時,DatePickerDialog打開,這是我選擇的最後一個日期。
如何引用DatePickerDialog來更新日期?殺死DatePickerDialog也是可以接受的。
爲什麼每次用戶點擊文本視圖時都不運行新的數據挖掘對話實例?通過這種方式,createDialog總是被調用,對吧? – kinghomer
如何?我只是簡單地調用showDialog(MY_ID);'這是一個系統方法 – Andrew
你可以發佈活動代碼嗎?所以我可以看到你在哪裏以及如何在每個部分調用對話框 – kinghomer