有没有办法在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);

        }
});

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


答案 1

我认为从Android的默认CalendularView来看,您无法实现自己想要的。为此,您需要实现自定义日历或任何其他提供此实现的库,或者提供用于在月份之间滑动的侦听器或手势。如果对您有所帮助,请参考此链接: 材料-日历查看

这是示例代码:

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

希望它能帮助你。


答案 2

推荐