Android 如何在“上突出显示当天”;安卓材质日历“;

Android 如何在“上突出显示当天”;安卓材质日历“;,android,calendar,Android,Calendar,我正在为android使用材质日历 但是日历不会在日历视图上显示当前日期。 那么,如何证明这一点呢 我将周的第一天设置如下 如果要为当前日期设置不同的颜色,则必须向MaterialCalendarView添加装饰器: calendarView.addDecorator(new DayViewDecorator() { @Override public boolean shouldDecorate(CalendarDay day) { Calendar cal1

我正在为android使用材质日历

但是日历不会在日历视图上显示当前日期。 那么,如何证明这一点呢

我将周的第一天设置如下


如果要为当前日期设置不同的颜色,则必须向MaterialCalendarView添加装饰器:

calendarView.addDecorator(new DayViewDecorator() {
    @Override
    public boolean shouldDecorate(CalendarDay day) {
        Calendar cal1 = day.getCalendar();
        Calendar cal2 = Calendar.getInstance();

        return (cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA)
                && cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR)
                && cal1.get(Calendar.DAY_OF_YEAR) == 
               cal2.get(Calendar.DAY_OF_YEAR));
    }

    @Override
    public void decorate(DayViewFacade view) {
        view.setBackgroundDrawable(ContextCompat.getDrawable(MainActivity.this,R.drawable.selector));
    }
});
其中selector是您的custom selector.xml,例如:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"
  android:exitFadeDuration="@android:integer/config_shortAnimTime">

 <item
 android:state_checked="true"
 android:drawable="@color/yourColor"
 />

<item
android:state_pressed="true"
android:drawable="@color/yourColor"
/>

<item android:drawable="@android:color/transparent" />
</selector>

选择器参考链接:

装饰参考链接:

我希望这可能会对你有所帮助

试试这个

    MaterialCalendarView materialCalView = findViewById(R.id.ID_from_your_xml_code);
    materialCalView.setDateSelected(CalendarDay.today(), true);

不,我指的是当天,例如,今天是星期五,它应该显示突出显示的星期五。当我点击星期天时,星期五的颜色不应该隐藏。虽然这段代码可能会回答这个问题,但提供关于它如何解决问题以及为什么解决问题的信息会提高它的长期价值。感谢回复L_J我编辑了文本,但老实说,我不能很好地描述它的工作原理,因为我在androiddate中是新的,显示在日历中。但之前的左派选择也停留在那里。
 <selector xmlns:android="http://schemas.android.com/apk/res/android"
  android:exitFadeDuration="@android:integer/config_shortAnimTime">

 <item
 android:state_checked="true"
 android:drawable="@color/yourColor"
 />

<item
android:state_pressed="true"
android:drawable="@color/yourColor"
/>

<item android:drawable="@android:color/transparent" />
</selector>
MaterialCalendarView materialCalendarView=(MaterialCalendarView) findViewById (R.id.calendarView);     
Calendar calendar = Calendar.getInstance();
materialCalendarView.setDateSelected(calendar.getTime(), true);
    MaterialCalendarView materialCalView = findViewById(R.id.ID_from_your_xml_code);
    materialCalView.setDateSelected(CalendarDay.today(), true);