Aggiunta di events per tutti i giorni tra data di inizio e data di fine nel calendario di Google Android
Aggiunta di events per tutti i giorni tra data di inizio e data di fine nel calendario di Google Android. voglio rimanere each 3 mesi fino alla data di fine. Questa è la mia function
public void addEvent1(Context ctx, String title){ SimpleDateFormat df2 = new SimpleDateFormat("dd/MM/yyyy"); SimpleDateFormat df3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", java.util.Locale.getDefault()); Date Startdate = null; Date Enddate =null; String dtStart = date.getText().toString(); try { Startdate = df2.parse(dtStart); Enddate = df2.parse(stringMaturityDate); Log.v("SDate: ",""+ df3.format(Startdate)); Log.v("EDate: ",""+ df3.format(Enddate)); } catch(ParseException e){ e.printStackTrace(); } Calendar cali = Calendar.getInstance(); cali.setTime(Startdate); Calendar cali2 = Calendar.getInstance(); cali2.setTime(Enddate); SimpleDateFormat yyyymmdd = new SimpleDateFormat("yyyyMMdd"); Calendar dt = Calendar.getInstance(); dt.setTime(Enddate); String dtUntill = yyyymmdd.format(dt.getTime()); ContentResolver contentResolver = ctx.getContentResolver(); ContentValues calEvent = new ContentValues(); calEvent.put(CalendarContract.Events.CALENDAR_ID, 1); // XXX pick) calEvent.put(CalendarContract.Events.TITLE, title); calEvent.put(CalendarContract.Events.RRULE, "FREQ=MONTHLY;INTERVAL=3;UNTIL=" + dtUntill); calEvent.put(CalendarContract.Events.DTSTART, cali.getTimeInMillis()); calEvent.put(CalendarContract.Events.DTEND, cali2.getTimeInMillis()); calEvent.put(CalendarContract.Events.EVENT_TIMEZONE, "" + java.util.Locale.getDefault()); Uri uri = contentResolver.insert(CalendarContract.Events.CONTENT_URI, calEvent); int id = Integer.parseInt(uri.getLastPathSegment()); Toast.makeText(ctx, "Created Calendar Event " + id, Toast.LENGTH_SHORT).show(); ContentValues reminders = new ContentValues(); reminders.put(CalendarContract.Reminders.EVENT_ID, id); reminders.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALERT); reminders.put(CalendarContract.Reminders.MINUTES, 10); Uri uri1 = contentResolver.insert(CalendarContract.Reminders.CONTENT_URI, reminders); }
questa function aggiunge events each giorno. Come rimuoverlo. Ho bisogno solo di resto. C'è qualcosa di sbagliato nel mio codice?
One Solution collect form web for “Aggiunta di events per tutti i giorni tra data di inizio e data di fine nel calendario di Google Android”
Se leggo tutto correttamente, si desidera un elemento di calendario each mese dell'tree per un giorno integer. Hai provato ad aggiungere questa linea?
contentValues.put(CalendarContract.EXTRA_EVENT_ALL_DAY, true);
E cambiato la data di fine di un elemento di calendario è impostato correttamente alla fine dell'anno, mentre questa dovrebbe essere la data di fine dell'elemento corrente. DTEND è la fine dell'attuale elemento DURATION è la fine del paternio di reoccuring.
Se ho capito il problema sbagliato, per favore, date una descrizione dettagliata. Per tutte le opzioni del CalenderContracts, controlla questo collegamento .
EDIT:
Desideri un appuntamento di calendario per each giorno ma ricordi all'utente each tre mesi. Con il tuo codice questo non è attualmente ansible poiché aggiungi un promemory per each elemento del calendario con quell'ID (quindi per each giorno). Solo una soluzione semplice che posso pensare è creare un appuntamento separato con un altro id che si ripete each tre mesi con un promemory e un altro id. Attualmente non è ansible impostare un allarme per alcuni events con lo stesso id e alcuni no.