Android CalendarView обнаруживает смену месяца

Мне было интересно, есть ли способ определить, когда пользователь меняет месяц (переходит на другой месяц). Прямо сейчас я реализовал

calendar.setOnDateChangeListener(this);

Моя проблема в том, что когда я меняю месяц,

@Override public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth)

пожары, но год, месяц и день, которые я получаю, по-прежнему являются выбранной датой из месяца, из которого я пришел.

Я что-то упустил здесь? Может ли кто-нибудь указать мне правильное направление? Спасибо!


person momoja    schedule 20.11.2015    source источник
comment
я тоже хочу такую ​​же функцию вы нашли ответ   -  person Anil Shrestha    schedule 18.08.2017


Ответы (1)


К сожалению, вы не можете реализовать событие смены месяца, используя CalenderView по умолчанию для Android. Тем не менее, здесь доступен альтернативный настраиваемый MaterialCalendarView, который предоставляет слушатели изменения даты и месяца.

Пример кода для использования представления выглядит следующим образом:

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

Слушатель изменения даты также может быть реализован аналогичным образом с помощью MaterialCalendarView.

person R.Malik    schedule 18.09.2020