第32讲 UI组件之 时间日期控件DatePicker和TimePicker
在Android中,时间日期控件相对来说还是比较丰富的。其中,
DatePicker用来实现日期输入设置, TimePicker用来实现时间输入设置。
DatePickerDialog用来显示日期对话框,TimePickerDialog用来显示时间对话框。
AnalogClock用来显示一个指针式时钟,DigitalClock用来显示一个数字式时钟。
、DatePicker
在Android中,DatePicker用来实现日期输入设置,日期的设置范围为1900年1月1日至2100年12月31日。
常用xml属性
属性名称 |
说明 |
android:calendarViewShown[boolean] |
用于设置是否显示日历视图(calendar view); |
android:endYear[int] |
用于设置截至日期; |
android:maxDate[int] |
用于设置最大的日期; |
android:minDate[int] |
用于设置最小的日期; |
android:spinnersShown[boolean] |
用于设置是否显示spinners; |
android:startYear[int] |
用于设置起始日期; |
DatePicker的常用方法有以下一些:
方法名称 |
说明 |
getDayOfMonth() |
获取当前日期的日,返回int |
getMonth() |
获取当前日期的月,返回int |
getYear() |
获取当前日期的年,返回int |
setEnabked(boolean enabled) |
根据传入的参数设置日期选择控件是否可用 |
updateDate(int year,int month,int dayOfMonth) |
更新当前日期 |
init(int year,int monthOfYear,int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener); |
初始化日期,参数onDateChangedListener为监听器对象 |
新建一个DataPicker对象,添加
android:calendarViewShown="false" //关闭日历显示
通过DatePicker获取时间方法如下:
DatePicker datePicker=(DatePicker) findViewById(R.id.datePicker1);
//获得当前日期对象
Calendar calendar=Calendar.getInstance();
// 初始化DatePicker
datePicker.init(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH), new OnDateChangedListener() {
// 为DatePicker指定事件监听器
public void onDateChanged(DatePicker arg0, int year, int month, intday) {
Toast.makeText(MainActivity.this,"The date you pickis:"+year+"."+(month+1)+"."+day+".",0).show();
}
});
、TimePicker
在Android中,TimePicker用来实现时间输入设置,可以选择12或24小时模式。TimePicker的常用方法有以下一些:
方法名称 |
说明 |
getCurrentHour() |
获取当前时间的小时,返回Integer对象 |
getCurrentMinute() |
获取当前时间的分钟,返回Integer对象; |
is24HourView() |
获取是否为24小时模式,返回boolean对象; |
setCurrentHour(Integer currentHour) |
设置当前时间的小时; |
setCurrentMinute(Integer currentMinute) |
设置当前时间的分钟; |
setIs24HourView(Boolean is24HourView) |
设置24小时模式,默认为false; |
新建一个DataPicker对象
TimePicker timePicker=(TimePicker)findViewById(R.id.timePicker1);
timePicker.setIs24HourView(true); //24小时制
timePicker.setOnTimeChangedListener(newOnTimeChangedListener() {
public voidonTimeChanged(TimePicker arg0, int hour, int minute) {
Toast.makeText(MainActivity.this, "The time you pickis:"+hour+":"+minute, 0).show();
}
});
、弹出式Picker:DatePickerDialog TimePickerDialog
时间日期控件占用视图当中大片的面积,开发中我们经常使用对应的对话框组件。
举例,采用弹出框形式设置Date和Time
在Android中,DatePickerDialog用来显示日期对话框。DatePickerDialog的常用方法有以下一些:
方法名称 |
说明 |
getDatePicker() |
获取DatePicker中的日期值,返回DatePicker对象 |
onClick(DialogInterface dialog,int which) |
响应对话框中的点击事件; |
is24HourView() |
获取是否为24小时模式,返回boolean对象; |
onDateChanged(DatePicker view,int year,int month,int day) |
响应日期改变事件; |
updateDate(int year,int monthOfYear,int dayOfMonth) |
更新当前日期; |
在Android中,TimePickerDialog用来显示时间对话框。TimePickerDialog的常用方法有以下一些:
方法名称 |
说明 |
onClick(DialogInterface dialog,int which) |
响应对话框中的点击事件 |
is24HourView() |
获取是否为24小时模式,返回boolean对象; |
onTimeChanged(TimePicker view,int hourOfDay,int minute) |
响应时间改变事件; |
updateTime(int hourOfDay,int minuteOfHour) |
更新当前时间; |
1、弹出Date选择框
public void showdate(View view) {
Calendar calendar=Calendar.getInstance();
newDatePickerDialog(this, new OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int month, int day){
Toast.makeText(MainActivity.this, "Thedate you pick is:"+year+"."+(month+1)+"."+day+".",0).show();
}
};
calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)).show();
}
2、弹出Time选择框
public void showtime(View view) {
new TimePickerDialog(this, new OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hour, int minute) {
Toast.makeText(MainActivity.this, "The time you pickis:"+hour+":"+minute, 0).show();
}
}, 12, 12, true).show();
}