borrar el evento del calendario en android mediante programación
He buscado mucho en internet y he probado muchos ejemplos. Puedo agregar el acontecimiento con éxito al calendario con mi uso pero no puedo suprimir este acontecimiento programatically. Aquí están las muestras que he intentado que no puedo terminar con un resultado exitoso.
tokens [1] es id de evento.
1}
- ¿Puedo escuchar los eventos de toque de Android?
- Evento para manejar el foco del EditText
- Evento de desplazamiento en el Navegador de Android que no se dispara. Necesita una solución alternativa
- Android: crear calendarios personalizados con eventos
- En evento de zoom para google maps en android
Uri eventsUri = Uri.parse(getCalendarUriBase()+"events"); Uri eventUri = ContentUris.withAppendedId(eventsUri, Long.parseLong(tokens[1])); getContentResolver().delete(eventUri, null, null);
2)
ContentResolver cr = FlightOperationsCancelTicketFee.this.getContentResolver(); Uri EVENTS_URI = Uri.parse("content://com.android.calendar/" + "events"); deleteEvent(cr, EVENTS_URI, 1); private void deleteEvent(ContentResolver resolver, Uri eventsUri, int calendarId) { Cursor cursor; if (android.os.Build.VERSION.SDK_INT <= 7) { cursor = resolver.query(eventsUri, new String[]{ "_id" }, "Calendars_id=" + calendarId, null, null); } else { cursor = resolver.query(eventsUri, new String[]{ "_id" }, "calendar_id=" + calendarId, null, null); } while(cursor.moveToNext()) { long eventId = cursor.getLong(cursor.getColumnIndex("_id")); resolver.delete(ContentUris.withAppendedId(eventsUri, eventId), null, null); } cursor.close(); }
3)
ContentResolver cr = getContentResolver(); String calUriString = "content://com.android.calendar/events"; Uri cal=Uri.parse(calUriString); String[] EVENT_PROJECTION=new String[]{"calendar_id","title","dtstart","_id"}; Uri eventsUri = Uri.parse(getCalendarUriBase()+"events"); Uri eventUri =ContentUris.withAppendedId(eventsUri, Long.parseLong(tokens[1])); String reminderUriString = "content://com.android.calendar/reminders"; Uri remUri =Uri.parse(reminderUriString); cr.delete(remUri, "event_id="+Commons.event_id, null); cr.delete(eventUri, null, null);
4)
Uri eventsUri = Uri.parse(getCalendarUriBase()+"events"); Uri eventUri = ContentUris.withAppendedId(Events.CONTENT_URI, Long.parseLong(tokens[1])); getContentResolver().delete(eventUri, null, null);
Ninguno de los anteriores funciona. Necesito ayuda . Gracias .. Editar: Creo que no puedo enviar el contexto adecuado, hay una manera de mantener el contexto a través de las preferencias compartidas? Sin embargo, sólo mantiene los valores String y Int. ¿Hay otra manera de hacer algo como esto?
- Comunicación personalizada de Ver a la actividad de Android
- SDK de Android: ¿Cómo salir del estado de la oficina para eventos de Calendario?
- Obtener instancia de la actividad actualmente en ejecución?
- Evento táctil: cuando se quita el dedo del elemento
- Hacer emergente la tecla pulsada en un teclado personalizado
- Android: evento de toque de pantalla a través de ADB
- El evento touchend no funciona en Android
- ¿Cómo enviar MotionEvent sintetizado a través del sistema?
La mejor documentación sobre el tema está aquí: http://developer.android.com/guide/topics/providers/calendar-provider.html
Pero básicamente lo hace por el libro en (1).
Mi sugerencia es primero cerciorarte de que tienes la identificación derecha, segunda prueba en otro dispositivo etc. También prueba si puedes conseguir el acontecimiento otra vez después de que lo hayas suprimido.
debe agregar eventos al calendario con diferentes _id como calender_id actuar como una clave primaria. Tan si usted quisiera que un registro particular para suprimir apenas diera ese comando de la identificación para suprimir.
Utilice este código, funcionó para mí:
Uri deleteUri = null; deleteUri = ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, Long.parseLong(String.valueOf(eventID))); int rows = getContentResolver().delete(deleteUri, null, null); Toast.makeText(this, "Event deleted", Toast.LENGTH_LONG).show();
- Establecimiento de un divisor giratorio para una ruleta específica
- ¿Los usuarios de Samsung Glaxy S4 informan que el receptor BOOT_COMPLETED no funcionará?