【问题标题】:Android calendar recurring event multiple times per dayAndroid 日历每天多次重复事件
【发布时间】:2017-02-15 10:54:57
【问题描述】:

在我的应用程序中,我需要每天创建一些事件,重复出现。例如。 用户提供三个小时:11:30、12:45、15:15 和结束日期,例如。 2017 年 2 月 20 日。所以我需要每天进行三个活动,每天重复,直到 20-02-2017。我的代码在下面,但是它只添加了最后一个事件 (15:15)。

// 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);
}

在我看来,是三个事件(每个特定时间一个)还是一个聚集所有事件都没有关系。

到目前为止,仅显示上次的弹出窗口并创建事件。

【问题讨论】:

    标签: android calendar


    【解决方案1】:

    添加onActivityResult 处理程序有所帮​​助,但我不知道为什么。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 2018-02-20
      • 1970-01-01
      相关资源
      最近更新 更多