2017-08-18 36 views
11

我想获取日历视图中显示的月份,我无法弄清楚。我试过有没有什么办法来检测Android日历视图中的月份变化(即当用户将日历更改为另一个月)

calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() { 

     @Override 
     public void onSelectedDayChange(CalendarView view, int year, int month, 
             int dayOfMonth) { 
      int d = dayOfMonth; 
      int m = month; 
      Log.d("month", "" + m); 
      String curDate = String.valueOf(d); 

     } 
}); 

但它只在用户点击到月份的日子时触发。我想要的是当用户更改月份我想要更改的月份(即日历视图中显示的月份)。 任何帮助,将不胜感激。提前致谢。

回答

7

我认为从Android的默认CalendarView你不能达到你想要的。为此,您需要实现您的自定义日历或提供此实现的任何其他库,或者在几个月之间提供用于滑动的侦听器或手势。请参阅该链接,如果它可以帮助你: Material-CalendeView

这是示例代码:

MaterialCalendarView calendarView = new MaterialCalendarView(getActivity()); 
calendarView.setOnMonthChangedListener(new OnMonthChangedListener() { 
    @Override 
    public void onMonthChanged(MaterialCalendarView widget, CalendarDay date) { 
      //Do something like this 
      Date date1 = date.getDate(); 
    } 
}); 

希望它可以帮助你。

+0

伟大的工作。感谢兄弟,我被困在这个问题3天。 –

+0

但我如何解析它bro当我登录日期它给了我这个CalendarDay {2017-8-1} –

+0

检查我更新的答案。现在你可以用Date对象做任何事情。 :-D – AndiM