gpt4 book ai didi

android - 在谷歌日历Android中为开始日期和结束日期之间的所有日期添加事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:04:48 27 4
gpt4 key购买 nike

在 Android 谷歌日历中为开始日期和结束日期之间的所有日期添加事件。我希望每 3 个月剩余一次,直到结束日期。这是我的功能

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

此函数每天添加事件。如何删除它。我只需要余数。我的代码有什么问题吗? screenshot1 screenshot2

最佳答案

如果我没看错,你想要每树月有一个日历项,持续一整天。您是否尝试过添加这一行?

contentValues.put(CalendarContract.EXTRA_EVENT_ALL_DAY, true);

并更改了一个日历项目的结束日期当前设置为年底,而这应该是当前项目的结束日期。 DTEND 是当前项目的结尾 DURATION 是重复模式的结尾。

如果我理解错了问题,请给我详细的描述。对于 CalenderContracts 中的所有选项,检查 this link .

编辑:

您希望每天都有一个日历约会,但每三个月提醒一次用户。使用您的代码,这目前是不可能的,因为您要为每个具有该 ID 的日历项目添加提醒(因此每天)。我能想到的唯一简单的解决方案是使用另一个 ID 创建一个单独的约会,您每三个月重复一次,并带有提醒和不同的 ID。目前无法为某些具有相同 ID 的事件设置警报,而有些则不能。

关于android - 在谷歌日历Android中为开始日期和结束日期之间的所有日期添加事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36885407/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com