How to show a specific month in android CalendarView?

杀马特。学长 韩版系。学妹 提交于 2019-12-12 05:18:24

问题


I want to show a specific month to user using android CalendarView. Please help me to implement this functionality. I wrote following code but it is not working.

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

Following output is coming when i am trying to run the app using above code.


回答1:


Hint: What is the the value of Calendar.DATE? Documentation says 5, and so when you call this method, you are saying "5 milliseconds past Jan 01, 1970."

setMinDate(long minDate)

Sets the minimal date supported by this CalendarView in milliseconds since January 1, 1970 00:00:00 in getDefault() time zone.

Basically, that is a static field, and probably not the value that you want.

Perhaps you want getTimeInMillis() which returns the long for the value that you set the date at?

calendarView.setMinDate(calendar1.getTimeInMillis());
calendarView.setMaxDate(calendar2.getTimeInMillis());



回答2:


As From my experience i always used Calender.set(Calendar.YEAR, year) method to set year and Calender.set(Calendar.MONTH, month) method to set month and Calender.set(Calendar.DAY,day) method to set day . So i am suggesting you to do same ,

    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();

And now set the selected date in the calendar view by doing

  mCalendarView.setDate (milliTime, true, true); 


来源:https://stackoverflow.com/questions/39062890/how-to-show-a-specific-month-in-android-calendarview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!