Есть ли способ обнаружить изменение месяца в представлении календаря 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);

        }
});

но он срабатывает только тогда, когда пользователь нажимает на дни месяца. Что я хочу, так это то, что когда пользователь меняет месяц, я хочу изменить месяц (т.е. месяц, отображаемый в представлении календаря). Любая помощь будет оценена по достоинству. Заранее спасибо.


person Anil Shrestha    schedule 18.08.2017    source источник


Ответы (1)


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

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

person AndiM    schedule 21.08.2017
comment
отлично работает. спасибо, братан, я застрял в этой проблеме на 3 дня. - person Anil Shrestha; 21.08.2017
comment
но как мне разобрать это, братан, когда я записываю дату, она выдает мне этот CalendarDay{2017-8-1} - person Anil Shrestha; 21.08.2017
comment
Проверьте мой обновленный ответ. Теперь вы можете делать что угодно с вашим объектом Date. :-D - person AndiM; 21.08.2017