Есть ли способ обнаружить изменение месяца в представлении календаря 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 Calendar по умолчанию Android Calendar вы не можете достичь того, чего хотите. Для этого вам необходимо реализовать свой собственный календарь или любую другую библиотеку, которая обеспечивает эту реализацию, или предоставляет слушателям или жесты для прокрутки между месяцами. Обратитесь к этой ссылке, если она вам поможет:  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();
     }
 });

Надеюсь, это поможет вам.