我想突出显示多个选定的日期,例如缺席(红色),礼物(绿色)和假期(蓝色)。我展示了许多站点或github或stackoverflow答案,但找不到完美的解决方案。 还要设置最小和最大日期以显示日历。
我的问题就像this link example,但找不到解决方案。
请帮助我找到完美的解决方案。
答案 0 :(得分:0)
Follow this link to get the library mCalendarView
1。使用第三方库McalenderView。
2。添加到您的gradle:-
'sun.bob:mcalendarview:1.0.0'
尝试以下代码:-
3。一些代码:-
calendarView = ((MCalendarView) view.findViewById(R.id.calendar_exp));
ArrayList<DateData> dates=new ArrayList<>();
dates.add(new DateData(2018,04,26));
dates.add(new DateData(2018,04,27));
for(int i=0;i<dates.size();i++) {
calendarView.markDate(dates.get(i).getYear(),dates.get(i).getMonth(),dates.get(i).getDay());//mark multiple dates with this code.
}
Log.d("marked dates:-",""+calendarView.getMarkedDates());//get all marked dates.
答案 1 :(得分:0)
尝试使用这些库:
dependencies {
implemantation 'com.savvi.datepicker:rangepicker:1.3.0'
}
内部布局:
<com.savvi.rangedatepicker.CalendarPickerView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/calendar_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbarStyle="outsideOverlay"
android:clipToPadding="false"
app:tsquare_orientation_horizontal="false"
app:tsquare_dividerColor="@color/transparent"
app:tsquare_headerTextColor="@color/custom_header_text"
/>
在Java类中将其初始化
calendar.init(lastYear.getTime(), nextYear.getTime()) //
.inMode(CalendarPickerView.SelectionMode.RANGE)
.withSelectedDate(new Date())
// deactivates given dates, non selectable
.withDeactivateDates(list)
// highlight dates in red color, mean they are aleady used.
.withHighlightedDates(arrayList)
// add subtitles to the dates pass a arrayList of SubTitle objects with date and text
.withSubtitles(getSubtitle())