Мне нужно выполнить поиск в моей базе данных на основе запроса месяца, возвращенного из CalendarView. Моя проблема в том, что событие onSelectedDayChange () срабатывает только при нажатии, фактически выбирая дату, а не когда месяц изменяется путем прокрутки CalendarView. Как настроить что-то вроде «onSelectedMonthChange»?
Android CalendarView как определить изменение месяца
Ответы (2)
Вы не можете этого сделать с Android CalendarView
. Посмотрите на это ветка.
Если вы хотите это сделать, вам нужно будет создать собственный CalendarView
класс, который будет extend
CalendarView
и реализовывать onGestureListener
. Сохраните переменную curMonth
, чтобы вести учет вашего месяца. Всякий раз, когда происходит смахивание влево / вправо, обновляйте переменную month
соответственно.
person
Sachin Aggarwal
schedule
10.09.2017
Спасибо, согласен с вашим предложением. Как протестировать флинг на моем ПК?
- person alberto; 10.09.2017
@alberto Fling должен работать на эмуляторе (ПК), поскольку это не мультитач-жест. Тем не менее, я советую мобильному устройству протестировать вещи, связанные с жестами :-)
- person Sachin Aggarwal; 11.09.2017
хм плохой старт уже! открытый класс FlingCalendaView расширяет CalendarView, реализует MyGestureListener {} показывает ошибку, нет конструктора по умолчанию, доступного в 'Android.widget.CalendarView'
- person alberto; 11.09.2017
Создайте собственный конструктор, который будет иметь аргумент в качестве контекста.
- 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