Kalenderfarbe wird nicht übernommen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Kalenderfarbe wird nicht übernommen

    Hallo,

    ich möchte einen Termin in einen Kalendar eintragen. Dazu habe ich folgenden Code:

    Quellcode

    1. public void addEvent(String title, long calendarid, int color, Calendar timefrom, Calendar timeto, boolean wholeday, String timezone, String rrule, ArrayList<Reminder> reminders, String location, String description) {
    2. ContentResolver cr = this.c.getContentResolver();
    3. ContentValues values = new ContentValues();
    4. System.out.println("Adding " + title + ", CalendarID: " + calendarid + ", " + color + ", " + timefrom.getTimeInMillis() + ", " + timeto.getTimeInMillis() + ", "
    5. + (timeto.getTimeInMillis() - timefrom.getTimeInMillis()) + ", " + timezone + ", " + rrule + ", " + location + ", " + description);
    6. values.put(CalendarContract.Events.TITLE, title);
    7. values.put(CalendarContract.Events.CALENDAR_ID, calendarid);
    8. values.put(CalendarContract.Events.EVENT_COLOR_KEY, 0xff000000 - color);
    9. values.put(CalendarContract.Events.DTSTART, timefrom.getTimeInMillis());
    10. values.put(CalendarContract.Events.DTEND, timeto.getTimeInMillis());
    11. if(wholeday == true) {
    12. values.put(CalendarContract.Events.ALL_DAY, 1);
    13. }
    14. else {
    15. values.put(CalendarContract.Events.ALL_DAY, 0);
    16. }
    17. values.put(CalendarContract.Events.EVENT_TIMEZONE, timezone);
    18. System.out.println("MEINERRULE: " + rrule);
    19. values.put(CalendarContract.Events.RRULE, rrule);
    20. values.put(CalendarContract.Events.EVENT_LOCATION, location);
    21. values.put(CalendarContract.Events.DESCRIPTION, description);
    22. if(reminders.size() > 0) {
    23. values.put(CalendarContract.Events.HAS_ALARM, 1);
    24. }
    25. else {
    26. values.put(CalendarContract.Events.HAS_ALARM, 0);
    27. }
    28. Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
    Alles anzeigen

    Der Termin wird eingetragen, aber:

    Die eingetragene Farbe stimmt nicht. Es wird immer die Farbe vom Default-Kalender (nämlich -6306073) eingetragen. Was mache ich falsch?
  • Hallo ich denke du kanst nicht alle Farben nehmen.
    values.put(CalendarContract.Events.EVENT_COLOR_KEY, 0xff000000 - color);
    Dein Key ist kein gültiger eintrag in der CalendarContract.Colors table.





    EVENT_COLOR_KEY

    added in API level 15 String EVENT_COLOR_KEY A secondary color key for the individual event. NULL or an empty string are reserved for indicating that the event does not use a key for looking up the color. The provider will update EVENT_COLOR automatically when a valid key is written to this column. The key must reference an existing row of the CalendarContract.Colors table. @see Colors
    Type: TEXT
    Constant Value: "eventColor_index"
    Ein Feedback auf Tipps ist auch schön. :P