有时候在控件中需要显示时间,而通过点击控件需要对当前显示的时间进行修改。这个时候就要用到DatePickerDialog和TimePickerDialog这两个显示时间的控件,以及Calendar这个用作获取时间的接口。
1.首先为弹出日期的修改框,同时要求默认显示当前的日期,需要添加设置日期的监听接口。接口的代码为:
DatePickerDialog.OnDateSetListener change_date_lister = new DatePickerDialog.OnDateSetListener()
{
public voidonDateSet(DatePicker view, int year, intmonthOfYear,int dayOfMonth) {
customTimeCalendar.set(Calendar.YEAR, year);
customTimeCalendar.set(Calendar.MONTH,monthOfYear);
customTimeCalendar.set(Calendar.DAY_OF_MONTH,dayOfMonth);
// 修改时分
Calendar tempCalendar = Calendar.getInstance();
TimePickerDialog timePickerDialog =
newTimePickerDialog(ac, change_time_listener,
tempCalendar.get(Calendar.HOUR_OF_DAY),
tempCalendar.get(Calendar.MINUTE), true);
timePickerDialog.show();
//terminal_calendar.setText(DateUtils.getTimeStr(customTimeCalendar.getTime(),"yyyy-MM-ddHH:mm:ss"));//控件的显示
}
};
通过调用该接口,既可以完成对日期的设置。调用的代码为:
Calendar tempCalendar= Calendar.getInstance();
DatePickerDialogdatePickerDialog =
newDatePickerDialog(ac, change_date_lister,
tempCalendar.get(Calendar.YEAR),
tempCalendar.get(Calendar.MONTH),
tempCalendar.get(Calendar.DATE));
datePickerDialog.show();
调用之后的效果为:
2.调用修改时分的控件,需要添加设置时分的监听接口,接口的代码为
TimePickerDialog.OnTimeSetListenerchange_time_listener = newTimePickerDialog.OnTimeSetListener() {
//同DatePickerDialog控件
@Override
public voidonTimeSet(TimePicker view, int hourOfDay, int minute) {
customTimeCalendar.set(Calendar.HOUR_OF_DAY,hourOfDay);
customTimeCalendar.set(Calendar.MINUTE, minute);
terminal_calendar.setText(DateUtils.getTimeStr(customTimeCalendar.getTime(),"yyyy-MM-ddHH:mm:ss"));
Toast.makeText(ac, "完成设置,开始上传时间", Toast.LENGTH_LONG).show();
ThreadUtils.startThread(changeTime_Runnable);
}
};
修改时分的时候调用该监听接口,完成对时分的修改,调用代码为:
// 修改时分
Calendar tempCalendar= Calendar.getInstance();
TimePickerDialog timePickerDialog =
newTimePickerDialog(ac, change_time_listener,
tempCalendar.get(Calendar.HOUR_OF_DAY),
tempCalendar.get(Calendar.MINUTE), true);
timePickerDialog.show();