将用户选择的日期从DatePicker设置为日历

时间:2016-04-05 19:37:39

标签: java android

所以我需要用户从DatePicker对话框中选择日期,然后当他选择日期时我希望它显示在日历上。例如,如果用户选择01/01/2016,我希望该日期显示为红色标记日期。

这是我的代码:

displayDatumaDodajPisaniIspit = (TextView)dialog. findViewById(R.id.displayDatumaDodajPisaniIspit);
                            set = (Button)dialog. findViewById(R.id.set);
                            set.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    new DatePickerDialog(HomeScreen.this, listener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show();
                                }
                            });

和听众

DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        displayDatumaDodajPisaniIspit.setText(dayOfMonth + "/" + (monthOfYear + 1) + "/" + year);
        calendarView.setDateSelected();
    }

};

我不知道如何开始。在听众中尝试了一些方法,但它没有用。

1 个答案:

答案 0 :(得分:1)

您应该首先将所选日期转换为毫秒 -

Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.YEAR, year);
    calendar.set(Calendar.MONTH, monthOfYear);
    calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);

    long millis = calendar.getTimeInMillis();

然后在CalendarView中设置日期 -

calendarView.setDate(millis);

如你所说,你正在使用MaterialCalendarView,我想你可以使用 -

calendarView.setSelectedDate(CalendarDay.from(year,monthOfYear,dayOfMonth));