Question

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.

Was it helpful?

Solution

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.

OTHER TIPS

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:

https://android.googlesource.com/platform/frameworks/base/+/2888524e03896831f487e5dee63f18f1c33c0115/core/java/android/widget/CalendarView.java

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top