第32讲 UI组件之 时间日期控件DatePicker和TimePicker

时间:2022-09-19 06:04:11

第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;

第32讲 UI组件之 时间日期控件DatePicker和TimePicker

新建一个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();

}