2017-02-07 35 views
6

Mam widok kalendarza, w którym ustawiam zdarzenia, ale nie mam pomysłu na obsługę wydarzeń cyklicznych. Dostaję wartość Event.RRULE kursorem:Obsługa zdarzeń .RRULE

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

Na przykład wartość rrule jest:

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

Jak mogę uzyskać wartości z tego łańcucha, aby ustawić je jako wartości kalendarzu?

Na przykład chcę dostać poniedziałek - MO, aby ustawić go w obiekt kalendarz

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

Odpowiedz

2

Istnieją różne biblioteki do obsługi RRULEs. Można użyć google-rfc-2445

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

i właściwości użytkowe niż dla utworzonego obiektu w użyteczny sposób, albo można użyć lib-recur

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

i korzystać z rule przeanalizowane właściwości obiektu.