如何在 MaterialCalenderView 中 select 多个事件日期
How to select multiple event date in MaterialCalenderView
我正在使用 MaterialCalendarView 库,我想 select 有问题的事件日期(用户不会在 运行 时间内 select ),这将是多个,阅读文档后,我看到了四个案例。
- SELECTION_MODE_NONE
- SELECTION_MODE_SINGLE
- SELECTION_MODE_RANGE
- SELECTION_MODE_MULTIPLE
我使用 SELECTION_MODE_NONE 因为我不想让用户 select 约会。
我试过了,但它没有显示我过去的 select 天。
private MaterialCalendarView materialCalendarView;
materialCalendarView = view.findViewById(R.id.newCal);
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 12, 1);
calendar.set(2017, 12, 7);
calendar.set(2017, 12, 8);
calendar.set(2017, 12, 9);
calendar.set(2017, 12, 10);
materialCalendarView.addDecorator(new CurrentDayDecatator(getActivity()));
materialCalendarView.setDateSelected(calendar, true);
materialCalendarView.setSelectionMode(MaterialCalendarView.SELECTION_MODE_NONE);
如何实现?我哪里错了?
更新:
在 Umar 和 Manny 登录后,我更新了我的代码:
materialCalendarView.setSelectionMode(MaterialCalendarView.SELECTION_MODE_NONE);
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 12, 14);
Calendar calendar2 = Calendar.getInstance();
calendar.set(2017, 12, 15);
Calendar calendar3 = Calendar.getInstance();
calendar.set(2017, 12, 16);
Calendar calendar4 = Calendar.getInstance();
calendar.set(2017, 12, 17);
materialCalendarView.addDecorator(new CurrentDayDecatator(getActivity()));
materialCalendarView.setDateSelected(calendar, true);
materialCalendarView.setDateSelected(calendar2, true);
materialCalendarView.setDateSelected(calendar3, true);
materialCalendarView.setDateSelected(calendar4, true);
所以,现在我只得到最后一个日期 selected,即 calendar4。但我仍然无法 select 多个日期。并且默认情况下 materialCalendarView selects 今天的日期。
您正在为 Calendar 对象的同一实例设置日期。您需要多个日历对象,然后将这些对象设置为 materialCalenderView
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 12, 1);
Calendar calendar2 = Calendar.getInstance();
calendar2.set(2017, 12, 7);
materialCalendarView.setDateSelected(calendar, true);
materialCalendarView.setDateSelected(calendar2, true);
好的,经过大量调整并根据 Manny 和 Umar 的建议,我终于找到了如何在 materialCalendarView 中设置多天的方法。原来是这样。
我不希望用户 select 日历中的日期,所以在我的代码中添加了这一行:
materialCalendarView.setSelectionMode (MaterialCalendarView.SELECTION_MODE_NONE);
现在我想设置多个日期,为此我正在创建多个日历对象并像这样在其中填充日期...
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 11, 14);
Calendar calendar1 = Calendar.getInstance();
calendar1.set(2017, 11, 16);
最后是 select 多个日期,但也是 select 今天的日期,这不是问题。但是现在当我将月份设为 12(十二月)时,它显示下个月 12+1,这意味着明年一月。因此,为此我传递的值小于我想要的值。
最终代码:
materialCalendarView.setSelectionMode (MaterialCalendarView.SELECTION_MODE_NONE);
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 11, 14);
Calendar calendar1 = Calendar.getInstance();
calendar1.set(2017, 11, 16);
materialCalendarView.setDateSelected(calendar, true);
materialCalendarView.setDateSelected(calendar1, true);
谢谢 Manny 和 Umar :)
我正在使用 MaterialCalendarView 库,我想 select 有问题的事件日期(用户不会在 运行 时间内 select ),这将是多个,阅读文档后,我看到了四个案例。
- SELECTION_MODE_NONE
- SELECTION_MODE_SINGLE
- SELECTION_MODE_RANGE
- SELECTION_MODE_MULTIPLE
我使用 SELECTION_MODE_NONE 因为我不想让用户 select 约会。 我试过了,但它没有显示我过去的 select 天。
private MaterialCalendarView materialCalendarView;
materialCalendarView = view.findViewById(R.id.newCal);
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 12, 1);
calendar.set(2017, 12, 7);
calendar.set(2017, 12, 8);
calendar.set(2017, 12, 9);
calendar.set(2017, 12, 10);
materialCalendarView.addDecorator(new CurrentDayDecatator(getActivity()));
materialCalendarView.setDateSelected(calendar, true);
materialCalendarView.setSelectionMode(MaterialCalendarView.SELECTION_MODE_NONE);
如何实现?我哪里错了?
更新: 在 Umar 和 Manny 登录后,我更新了我的代码:
materialCalendarView.setSelectionMode(MaterialCalendarView.SELECTION_MODE_NONE);
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 12, 14);
Calendar calendar2 = Calendar.getInstance();
calendar.set(2017, 12, 15);
Calendar calendar3 = Calendar.getInstance();
calendar.set(2017, 12, 16);
Calendar calendar4 = Calendar.getInstance();
calendar.set(2017, 12, 17);
materialCalendarView.addDecorator(new CurrentDayDecatator(getActivity()));
materialCalendarView.setDateSelected(calendar, true);
materialCalendarView.setDateSelected(calendar2, true);
materialCalendarView.setDateSelected(calendar3, true);
materialCalendarView.setDateSelected(calendar4, true);
所以,现在我只得到最后一个日期 selected,即 calendar4。但我仍然无法 select 多个日期。并且默认情况下 materialCalendarView selects 今天的日期。
您正在为 Calendar 对象的同一实例设置日期。您需要多个日历对象,然后将这些对象设置为 materialCalenderView
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 12, 1);
Calendar calendar2 = Calendar.getInstance();
calendar2.set(2017, 12, 7);
materialCalendarView.setDateSelected(calendar, true);
materialCalendarView.setDateSelected(calendar2, true);
好的,经过大量调整并根据 Manny 和 Umar 的建议,我终于找到了如何在 materialCalendarView 中设置多天的方法。原来是这样。
我不希望用户 select 日历中的日期,所以在我的代码中添加了这一行:
materialCalendarView.setSelectionMode (MaterialCalendarView.SELECTION_MODE_NONE);
现在我想设置多个日期,为此我正在创建多个日历对象并像这样在其中填充日期...
Calendar calendar = Calendar.getInstance(); calendar.set(2017, 11, 14); Calendar calendar1 = Calendar.getInstance(); calendar1.set(2017, 11, 16);
最后是 select 多个日期,但也是 select 今天的日期,这不是问题。但是现在当我将月份设为 12(十二月)时,它显示下个月 12+1,这意味着明年一月。因此,为此我传递的值小于我想要的值。
最终代码:
materialCalendarView.setSelectionMode (MaterialCalendarView.SELECTION_MODE_NONE);
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 11, 14);
Calendar calendar1 = Calendar.getInstance();
calendar1.set(2017, 11, 16);
materialCalendarView.setDateSelected(calendar, true);
materialCalendarView.setDateSelected(calendar1, true);
谢谢 Manny 和 Umar :)