DaxHR
DaxHR

Reputation: 683

Setting user picked date from DatePicker to Calendar

So I need for user to select date from DatePicker Dialog and then when he selects date I want it to be shown on Calendar. For example, if user selects 01/01/2016 I want that date to be shown as some red marked date.

Here's my code:

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();
                                }
                            });

And the listener

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();
    }

};

I don't have idea how to start with it. Tried with some methods in listener but it didn't work.

Upvotes: 0

Views: 239

Answers (1)

Shadab Ansari
Shadab Ansari

Reputation: 7070

You should first convert the chosen date into millis -

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();

and then set the date in your CalendarView like this -

calendarView.setDate(millis);

As you mentioned you are using MaterialCalendarView, then I guess you can use -

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

Upvotes: 1

Related Questions