2017-02-15 11 views
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つ)またはすべてのイベントを収集する場合は、私の観点からは問題ではありません。

これまでのところ、前回のポップアップだけが表示され、イベントが作成されます。

答えて

0

onActivityResultハンドラを追加すると助けになりましたが、理由はわかりません。

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
     Toast.makeText(this, "Added", Toast.LENGTH_SHORT).show(); 
    } 
関連する問題