类似 Google 日历的实现,代表月份和列出日历视图的Android解决方案

Cadar

Android解决方案代表月和列表日历视图和显示事件的可能性:只是一组事件和周期性,但有限制。 对于事件处理,我使用Ical4J

类似 Google 日历的实现,代表月份和列出日历视图的Android解决方案

最常见的使用示例:

添加到您的布局:

 <io.github.memfis19.cadar.view.MonthCalendar
        android:id="@+id/monthCalendar"
        android:layout_width="match_parent"
        android:layout_height="300dp" />

在代码中使用:


MonthCalendarConfiguration.Builder builder = new MonthCalendarConfiguration.Builder(this);
monthCalendar.setCalendarPrepareCallback(this);
monthCalendar.prepareCalendar(builder.build());

monthCalendar.setOnDayChangeListener(new OnDayChangeListener() {
    @Override
    public void onDayChanged(Calendar calendar) {
        Toast.makeText(MonthCalendarActivity.this, calendar.getTime().toString(), Toast.LENGTH_SHORT).show();
      }
    });
monthCalendar.setOnMonthChangeListener(new OnMonthChangeListener() {
    @Override
    public void onMonthChanged(Calendar calendar) {
        Toast.makeText(MonthCalendarActivity.this, calendar.getTime().toString(), Toast.LENGTH_SHORT).show();
      }
    });
...

@Override
public void onCalendarReady(CalendarController calendar) {
   monthCalendar.displayEvents(events, new DisplayEventCallback() {
   @Override
     public void onEventsDisplayed() {

     }
 });
}

不要忘记释放日历:

@Override
protected void onDestroy() {
   super.onDestroy();
   monthCalendar.releaseCalendar();
}

更具体的使用请看看样例项目。

事件处理:

事件处理以最简单的方式实现,每个事件具有开始日期 – 开始和结束日期的日期 – 事件结束的日期。请注意,活动没有持续时间。所以不存在停止日期。每个事件下一个周期的递归处理:无,每周,每2周,每3周,每4周,每月,每年。如果事件npt的结束日期和重复周期设置为无,那将是单个事件,如果甚至有任何其他重复周期没有结束日期,它将是无尽的事件。

月和列表日历时间有限,通过defualt他们显示3年。您可以通过日历配置扩展它。如果你想使用列表和月日历耦合,那么你需要保持相同的配置设置。

还有一件事要知道事件处理

在某些情况下,在事件处理期间,计算时间可能重叠,在这种情况下事件可以重复,以避免这种情况,请覆盖实现Event的模型类中的equals()和hashCode()方法。有关更多详细信息,请查看示例源代码。

如何添加到您的项目?


compile 'io.github.memfis19:cadar:0.1.1'

知道问题

– 库还没有发布,所以它会在未来扩展。
– 不完整的文档将很快修复。

路线图

– 添加更多文档;
– 延伸事件的重复设置;
– 添加更多工具来自定义列表日历UI。

错误和反馈

对于错误,功能请求和讨论,请使用GitHub问题。

。。


发表评论

要发表评论,您必须先登录