Changing color of single day in calendarview, android
16,706
Solution 1
You could extend the native CalenderView to create your own CustomCalendarView and make any desired changes in appearance.
You can find the code for the native CalendarView here.
Solution 2
You may do it by obtain the child views of the CalendarView
and change there configuations:
final CalendarView calendar = new CalendarView(this);
java.lang.reflect.Field field = null;
Class<?> cvClass = calendar.getClass();
try {
field = cvClass.getDeclaredField("mDayNamesHeader");
field.setAccessible(true);
} catch (NoSuchFieldException e) {
}
ViewGroup tv = null;
try {
tv = (ViewGroup) field.get(calendar);
} catch (IllegalAccessException e) {}
catch (IllegalArgumentException ){}
TextView k = (TextView) tv.getChildAt(1);
k.setTextColor(Color.RED);
Here You can find all declarations:
Author by
Werdli
Updated on June 07, 2022Comments
-
Werdli about 2 years
I've got the calendarview in eclipse and now I'm trying to change the appearance of a single day to highlight dates. I didn't find any useful method here, only changes of appearances of whole weekdates or monthdates. So is there a possibility to highlight a single day?
Also i know there are like 3 posts with the same issue, but none of them got answered.
-
Werdli about 11 yearsThanks, didn't know the native CalendarView. Still android should maybe implement a method for changing single day colors in CalendarView!
-
Neon Warge about 9 yearsI find the calendar view very confusing to use. I don't understand why the user wants to scroll vertically or horizontally as if you are reading a foot-long text document. I find this not ergonomic at all. I am looking for ways on how to prevent calendar from being scrolled and to show only one month per view.
-
Colin Basnett almost 9 yearsThe CalendarView source link is dead.
-
artaxerx over 2 yearsActual source code is here android.googlesource.com/platform/frameworks/base/+/master/core/…