我想使用Android CalendarView向用户显示特定月份。请帮我实现这个功能。我写了下面的代码,但它没有用。
CalendarView calendarView = (CalendarView) findViewById(R.id.calendarView);
Calendar calendar1 = Calendar.getInstance();
calendar1.set(2016, 6, 1);
Calendar calendar2 = Calendar.getInstance();
calendar2.set(2016, 6, 30);
calendarView.setMinDate(calendar1.DATE);
calendarView.setMaxDate(calendar2.DATE);
当我尝试使用上面的代码运行应用程序时,以下输出即将到来。
答案 0 :(得分:2)
提示:Calendar.DATE
的价值是多少?文档说5,所以当你调用这个方法时,你说的是“1970年1月1日过去5毫秒。”
设置此CalendarView支持的最小日期,自1970年1月1日00:00:00起,在getDefault()时区内以毫秒为单位。
基本上,这是一个静态字段,可能不是您想要的值。
也许您希望getTimeInMillis()
为您设置日期的值返回long
?
calendarView.setMinDate(calendar1.getTimeInMillis());
calendarView.setMaxDate(calendar2.getTimeInMillis());
答案 1 :(得分:0)
根据我的经验,我总是使用Calender.set(Calendar.YEAR,year)方法设置年份和Calender.set(Calendar.MONTH,月份)方法来设置月份和Calender.set(Calendar.DAY,day)设定日期的方法。所以我建议你这样做,
String date = "1/6/2016";
String parts[] = date.split("/");
int day = Integer.parseInt(parts[0]);
int month = Integer.parseInt(parts[1]);
int year = Integer.parseInt(parts[2]);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.DAY_OF_MONTH, day);
long milliTime = calendar.getTimeInMillis();
现在通过执行
在日历视图中设置所选日期 mCalendarView.setDate (milliTime, true, true);