2017-02-07 8 views
6

У меня есть просмотр календаря, где я устанавливаю события, но у меня нет идеи, как обращаться с повторяющимися событиями. Я получаю значение Event.RRULE курсора:Как обращаться с Events.RRULE

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

Например значение rrule является:

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

Как я могу получить значения из этой строки, чтобы установить их в качестве значений Календаря?

Например, я хочу получить понедельник - MO, чтобы установить его в объекте Calendar

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

ответ

2

Существуют различные библиотеки для обработки RRULEs. Вы можете использовать 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 объекта.