我夸大了一个简单的CalendarView:
<CalendarView
android:id="@+id/calendar_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@android:style/Widget.CalendarView"
android:focusedMonthDateColor="@android:color/primary_text_dark"
android:unfocusedMonthDateColor="@color/light_gray"/>
在我的测试设备上,当我尝试选择当前日期以外的任何日期或通过滚动更改月份时,没有任何反应
我错过了什么吗?
答案 0 :(得分:1)
您要实现两件事,
Android的CalenderView提供了onDateChangeListener函数。您可以按以下方式使用它:
calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(@NonNull CalendarView calendarView, int year, int month, int dayOfMonth) {
// do something here
}
});
不幸的是,您无法使用Android的默认CalenderView实现此目的。但是,here可以使用另一种自定义的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();
}
});
日期更改侦听器也可以类似的方式实现。
答案 1 :(得分:0)
我建议您使用https://github.com/wdullaer/MaterialDateTimePicker
它是高度可定制的CalendarView for android,并且有很好的文档。 非常容易使用我在我的大多数项目中使用它。