如何处理 Events.RRULE

How to handle with Events.RRULE

我有日历视图,可以在其中设置事件,但我不知道如何处理重复发生的事件。 我通过光标获得 Event.RRULE 的值:

String rrule = cursor.getString(cursor.getColumnIndex(Events.RRULE));

例如规则值为:

FREQ=WEEKLY;BYDAY=MO,WE,FR;INTERVAL=1
FREQ=MONTHLY;BYMONTHDAY=6;INTERVAL=2

如何从此字符串中获取值以将它们设置为日历值?

例如我想获取星期一 - MO 以在日历对象中设置它

Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

有不同的库来处理 RRULE。您可以使用 google-rfc-2445

import com.google.ical.values.RRule;
//...
RRule rule = new RRule("RRULE:FREQ=MONTHLY;BYMONTHDAY=6;INTERVAL=2");

并以有用的方式为创建的对象使用属性,或者您可以使用 lib-recur

import org.dmfs.rfc5545.recur.RecurrenceRule;
// ...
RecurrenceRule rule = new RecurrenceRule("FREQ=MONTHLY;BYMONTHDAY=6;INTERVAL=2");

并使用 rule 对象的解析属性。