Android CalendarView как определить изменение месяца

Мне нужно выполнить поиск в моей базе данных на основе запроса месяца, возвращенного из CalendarView. Моя проблема в том, что событие onSelectedDayChange () срабатывает только при нажатии, фактически выбирая дату, а не когда месяц изменяется путем прокрутки CalendarView. Как настроить что-то вроде «onSelectedMonthChange»?


person alberto    schedule 10.09.2017    source источник


Ответы (2)


Вы не можете этого сделать с Android CalendarView. Посмотрите на это ветка.

Если вы хотите это сделать, вам нужно будет создать собственный CalendarView класс, который будет extend CalendarView и реализовывать onGestureListener. Сохраните переменную curMonth, чтобы вести учет вашего месяца. Всякий раз, когда происходит смахивание влево / вправо, обновляйте переменную month соответственно.

person Sachin Aggarwal    schedule 10.09.2017
comment
Спасибо, согласен с вашим предложением. Как протестировать флинг на моем ПК? - person alberto; 10.09.2017
comment
@alberto Fling должен работать на эмуляторе (ПК), поскольку это не мультитач-жест. Тем не менее, я советую мобильному устройству протестировать вещи, связанные с жестами :-) - person Sachin Aggarwal; 11.09.2017
comment
хм плохой старт уже! открытый класс FlingCalendaView расширяет CalendarView, реализует MyGestureListener {} показывает ошибку, нет конструктора по умолчанию, доступного в 'Android.widget.CalendarView' - person alberto; 11.09.2017
comment
Создайте собственный конструктор, который будет иметь аргумент в качестве контекста. - person Sachin Aggarwal; 11.09.2017

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

Calendar c = Calendar.getInstance();

//for next month
btnNext.onClick(){
     c.add(Calendar.MONTH,1);
}
//previous month
btnPrevious.onClick(){
     c.add(Calendar.MONTH,-1);
}
person Krantiz    schedule 10.09.2017