Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中从事件中删除提醒?_Android_Android Contentresolver_Reminders - Fatal编程技术网

如何在android中从事件中删除提醒?

如何在android中从事件中删除提醒?,android,android-contentresolver,reminders,Android,Android Contentresolver,Reminders,当我为某个事件设置提醒时,无法将其删除! 我已经测试了此代码: Uri reminderUri = ContentUris.withAppendedId(CalendarContract.Reminders.CONTENT_URI, reminder.id); context.getContentResolver().update(reminderUri, getEmptyReminderContentValues(reminder), null, null); context.getConte

当我为某个事件设置提醒时,无法将其删除! 我已经测试了此代码:

Uri reminderUri = ContentUris.withAppendedId(CalendarContract.Reminders.CONTENT_URI, reminder.id);
context.getContentResolver().update(reminderUri, getEmptyReminderContentValues(reminder), null, null);
context.getContentResolver().delete(reminderUri, null, null);
我看到一些日历包括谷歌日历这样做,但其中一些没有。
有人可以帮我吗?

您可以使用以下方法删除事件上设置的提醒

public static void deleteReminderOnEvent(Long reminderId) {
    Uri reminderUri = ContentUris.withAppendedId(CalendarContract.Reminders.CONTENT_URI, reminderId);
    int rows = contentResolver.delete(reminderUri, null, null);
}
您需要在上述方法之前使用以下方法获取事件的提醒ID,然后将其传递给上述方法。

private static Long checkIfReminderExist(ContentResolver contentResolver, long eventId) {
    Long reminderId = null;

    String[] projection = new String[]{
            CalendarContract.Reminders._ID,
            CalendarContract.Reminders.METHOD,
            CalendarContract.Reminders.MINUTES
    };

    Cursor cursor = CalendarContract.Reminders.query(contentResolver, eventId, projection);

    while (cursor != null && cursor.moveToNext()) {
        reminderId = cursor.getLong(0);
    }

    cursor.close();

    return reminderId;
}

您可以使用以下方法删除事件上设置的提醒

public static void deleteReminderOnEvent(Long reminderId) {
    Uri reminderUri = ContentUris.withAppendedId(CalendarContract.Reminders.CONTENT_URI, reminderId);
    int rows = contentResolver.delete(reminderUri, null, null);
}
您需要在上述方法之前使用以下方法获取事件的提醒ID,然后将其传递给上述方法。

private static Long checkIfReminderExist(ContentResolver contentResolver, long eventId) {
    Long reminderId = null;

    String[] projection = new String[]{
            CalendarContract.Reminders._ID,
            CalendarContract.Reminders.METHOD,
            CalendarContract.Reminders.MINUTES
    };

    Cursor cursor = CalendarContract.Reminders.query(contentResolver, eventId, projection);

    while (cursor != null && cursor.moveToNext()) {
        reminderId = cursor.getLong(0);
    }

    cursor.close();

    return reminderId;
}

让我知道下面的答案是否有帮助:)让我知道下面的答案是否有帮助:)您是否使用CheckIfEmployerExist获取提醒ID?因为同样的代码适用于我。您是否尝试过在分钟内设置空值或0值?@Punit Sharma 1)此代码用于删除单个提醒ID,如果该事件有多个提醒,并且我想删除该事件的所有提醒,该怎么办?2) 这行代码“int rows=contentResolver.delete(rementeruri,null,null);”中的delete函数返回什么?您是否使用checkifrementerexist获取提醒ID?因为这段代码同样适用于我。您是否尝试过在分钟内设置空值或0值?@Punit Sharma 1)此代码用于删除单个提醒ID,如果该事件有多个提醒,并且我想删除该事件的所有提醒,该怎么办?2) delete函数在这行代码“int rows=contentResolver.delete(rementeruri,null,null)”中返回什么