0
私のアプリでは、1日に数回イベントを作成する必要があります。例えば。 ユーザーは3時間を提供します:11:30、12:45、15:15および終了日。 20-02-2017。だから私は1日に3つのイベントを持つ必要があり、毎日20-02-2017まで繰り返されます。私のコードは以下の通りですが、最後のイベント(15:15)のみ追加します。Androidカレンダーの定期的なイベントを1日に複数回
// boxes cotnains edit fields with hours
for (int i = 0; i < boxes.size(); i++) {
EditText e = boxes.get(i);
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Calendar xd = Calendar.getInstance();
xd.setTime(sdf.parse(e.getText().toString()));// all done
cal.set(Calendar.HOUR_OF_DAY, xd.get(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, xd.get(Calendar.MINUTE));
eventValues.put("calendar_id", 1);
eventValues.put("title", "Pomiar ciśnienia");
eventValues.put("description", "Pamiętaj aby dokonać pomiaru");
Calendar beginTime = Calendar.getInstance();
beginTime.set(Calendar.HOUR_OF_DAY, xd.get(Calendar.HOUR_OF_DAY));
beginTime.set(Calendar.MINUTE, xd.get(Calendar.MINUTE));
beginTime.add(Calendar.DATE, 0);
SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MM-yyyy");
Date end = sdf2.parse(etUntil.getText().toString());
Calendar dt = Calendar.getInstance();
dt.setTime(end);
SimpleDateFormat yyyymmdd = new SimpleDateFormat("yyyyMMdd");
String dtUntil = yyyymmdd.format(dt.getTime());
long startMillis = beginTime.getTimeInMillis();
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setData(CalendarContract.Events.CONTENT_URI);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("rrule", "FREQ=DAILY;UNTIL="+dtUntil);
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, startMillis);
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, startMillis + 1000*60*30);
intent.putExtra("title", "Zmierz ciśnienie!");
intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, false);
intent.putExtra(CalendarContract.Events.HAS_ALARM, 1);
startActivity(intent);
}
3つのイベント(1つの特定の時間に1つ)またはすべてのイベントを収集する場合は、私の観点からは問題ではありません。
これまでのところ、前回のポップアップだけが表示され、イベントが作成されます。