如何处理Events.RRULE

Art*_*ski 7 android calendar rfc5545

我有日历视图,我正在设置事件,但我不知道如何处理重复事件.我通过游标获得Event.RRULE的值:

String rrule = cursor.getString(cursor.getColumnIndex(Events.RRULE));
Run Code Online (Sandbox Code Playgroud)

例如,rrule值是:

FREQ=WEEKLY;BYDAY=MO,WE,FR;INTERVAL=1
FREQ=MONTHLY;BYMONTHDAY=6;INTERVAL=2
Run Code Online (Sandbox Code Playgroud)

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

例如,我想得到星期一 - MO在Calendar对象中设置它

Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
Run Code Online (Sandbox Code Playgroud)

Ser*_*gii 4

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

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

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

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

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