所以我需要用户从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();
}
};
我不知道如何开始。在听众中尝试了一些方法,但它没有用。
答案 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));