CalendarView
日历控件。它需要API11以上才行。
常用属性:
showWeekNumber:是否展示每周的序号。注:该序号是按年算的,即每一年的第一周都是1。
shownWeekCount:每一页显示的周的个数
minDate:控件的最早时间,是以月/日/年的格式赋值的。如:9/20/2014年,那么该日历控件最多只能早到2014年9月20日。
maxDate:控制的最晚时间。具体格式同minDate。
firstDayOfWeek:每周的第一天。默认的是"日,一,二,三,四,五,六,七"。假设该值为5,那么顺序应该是"四,五,六,日,一,二,三"。
weekDayTextAppearance:指的是上面的用来标识周几的文字的样式。
dateTextAppearance:显示具体日期的文字样式。
以上几个属性见下图:
selectedWeekBackgroundColor:被选中周的背景色。例如该值为#ff0000,那么上周中48对就的周(也就是被选中的周)的背景就会变成红色。
focusedMonthDateColor:当前显示的月份中的日期的字体颜色。也就是上图中的纯黑色文字的颜色。
unfocusedMonthDateColor:非当前月的日期的字体颜色。即上图中颜色稍淡的部分的字体颜色。
weekNumberColor:周序号的字体颜色。即上图中左边红框中的字体颜色。
weekSeparatorLineColor:周之前的分隔线的颜色。
selectedDateVerticalBar:上图中25号是被选中的,他两边各有一个青色的图片,而该属性就是用来指定该图片的。
常用方法
当用户选择的日期变化时,可以通过setOnDateChangeListener获取。示例:
cv.setOnDateChangeListener(new OnDateChangeListener() {
public void onSelectedDayChange(CalendarView view, int year,
int month, int dayOfMonth) {
//这里的month是从0开始的,即1月时month为0.
System.out.println("year = " + year + ",month = " + month
+ ",day = " + dayOfMonth);
}
});
DatePicker
它是用来选择日期的,即选择年月日的。获取用户选择的年月日,可以通过init()中的第四个参数,它与DatePickerDialog类似。示例如下:
DatePicker cv = (DatePicker) findViewById(R.id.iv);
cv.init(2020, 2, 20, new OnDateChangedListener() {
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
System.out.println("year = " + year + ",month = " + monthOfYear
+ ",day = " + dayOfMonth);
}
});
常用属性:
属性中minDate,maxDate与CalendarView一样。
calendarViewShown:在默认时DatePicker有一个CalendarView,该属性就是控制CalendarView是否显示。
spinnersShown:DatePicker由两部分组成一部分是CalendarView,一部分是spinner。这个属性是控制spinner的显示或隐藏。
TimePicker
没有特殊的属性,它是用来选择时间的。可以通过setOnTimeChangedListener来获取选择的时间。它与TimePickerDialog类似。