首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android日历重复事件每天多次

Android日历重复事件每天多次
EN

Stack Overflow用户
提问于 2017-02-15 18:54:57
回答 1查看 390关注 0票数 0

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

代码语言:javascript
运行
复制
// 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);
}

从我的角度来看,无论是有三个事件(每个特定时间一个)还是一个将所有事件都聚集在一起,都没有关系。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 20:15:31

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

代码语言:javascript
运行
复制
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        Toast.makeText(this, "Added", Toast.LENGTH_SHORT).show();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42247328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档