Android 开发删除本地日程
时间: 2023-08-08 19:04:29 浏览: 86
要删除本地日程,你可以使用以下代码:
```java
ContentResolver cr = getContentResolver();
Uri calUri = CalendarContract.Events.CONTENT_URI;
long eventID = // 你要删除的日程的ID
int rows = cr.delete(ContentUris.withAppendedId(calUri, eventID), null, null);
```
其中,`getContentResolver()` 方法获取 `ContentResolver` 对象,`CalendarContract.Events.CONTENT_URI` 是日历事件的 URI,`eventID` 是你要删除的日程的 ID。最后,调用 `delete()` 方法删除对应的日程。
需要注意的是,如果你要删除的日程是重复事件,那么在删除时可能会影响到所有的重复事件。因此,建议在删除重复事件时,同时删除其所有的重复事件。
相关问题
Android 开发删除本地日程和重复日程 demo
好的,以下是一个简单的示例代码,用于删除本地日程和重复日程:
```java
public void deleteEvent(long eventId) {
ContentResolver cr = getContentResolver();
Uri eventUri = ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, eventId);
int rows = cr.delete(eventUri, null, null);
if (rows == 1) {
Log.i(TAG, "Event deleted successfully");
} else {
Log.e(TAG, "Error deleting event");
}
// 删除重复事件
String selection = CalendarContract.Events.ORIGINAL_ID + "=?";
String[] selectionArgs = new String[] { Long.toString(eventId) };
Cursor cursor = cr.query(CalendarContract.Events.CONTENT_URI, null, selection, selectionArgs, null);
while (cursor.moveToNext()) {
long childEventId = cursor.getLong(cursor.getColumnIndex(CalendarContract.Events._ID));
Uri childEventUri = ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, childEventId);
int childRows = cr.delete(childEventUri, null, null);
if (childRows == 1) {
Log.i(TAG, "Child event deleted successfully");
} else {
Log.e(TAG, "Error deleting child event");
}
}
cursor.close();
}
```
在该方法中,首先使用 `ContentResolver` 对象获取日历事件的 URI,并使用 `delete()` 方法删除指定的日程。然后,使用查询语句 `CalendarContract.Events.ORIGINAL_ID + "=?"` 通过 `ContentResolver` 对象查询所有与该日程相关的重复事件,并使用 `delete()` 方法删除每个重复事件。
需要注意的是,如果你要删除的日程是重复事件,那么在删除时可能会影响到所有的重复事件。因此,建议在删除重复事件时,同时删除其所有的重复事件。
Android 开发 代码删除本地日程
要删除本地日程,你可以使用 Android 的 CalendarProvider API。下面是一个示例代码:
```java
// 创建日历 Uri
Uri uri = CalendarContract.Calendars.CONTENT_URI;
// 查询指定日历的 ID
String[] projection = {CalendarContract.Calendars._ID};
String selection = CalendarContract.Calendars.NAME + "=?";
String[] selectionArgs = new String[]{"日历名称"};
Cursor cursor = getContentResolver().query(uri, projection, selection, selectionArgs, null);
if (cursor.moveToFirst()) {
long calId = cursor.getLong(0);
// 删除日程
Uri deleteUri = ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, eventId);
getContentResolver().delete(deleteUri, null, null);
}
```
其中,`eventId` 是要删除的日程的 ID。这段代码会删除指定日历中的指定日程。如果你想删除所有日历中的日程,可以将 `uri` 改为 `CalendarContract.Events.CONTENT_URI`。
阅读全文