java - ContentResolver删除多个

标签 java android sql android-calendar android-contentresolver

我知道可以像这样删除记录:

getContentResolver().delete(Events.CONTENT_URI, Events._ID + " =? ", eventId);

其中 eventId 是一个字符串数组,在本例中包含事件的 ID。 就我而言,我不想删除一个事件,而是多个事件。所以我有一个包含多个 eventId 的 eventId 数组。 我当然可以循环遍历数组并一一删除事件,但是是否也可以仅使用一次调用来删除它们?

最佳答案

试试这个代码,

ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();
ContentProviderOperation contentProviderOperation;

for (/*loop over your arrayList*/) 
{
    contentProviderOperation = ContentProviderOperation.newDelete(Events.CONTENT_URI).withSelection(Events._ID + " =? ", new String[]{yourId}).build();
    operationList.add(contentProviderOperation);
}

try {
    getContentResolver().applyBatch(Contract.AUTHORITY, operationList);
} 
// catch the exceptions

更多信息:ContentProviderOperation

关于java - ContentResolver删除多个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25770718/

相关文章:

android - Fragment 的 getView() 在 OnClickListener 回调中返回 null

sql - 复制 MySQL 数据库的最简单方法?

sql - 计算日期之间的空值

php - 如何在 while 循环内的 <li> 标记内创建一个自动递增的 ID?

java - 迭代excel值并与txt文件值匹配

java - 测试 spring-boot @service 类

java - JAVA_HOME环境变量没有定义正确,但是定义正确! Ubuntu 18.04.01

android - 无需安装 BarCode Scanner 即可集成 ZXing 二维码扫描器

java - 类定义类名<>

android - 如何从 Fragment 中清除 Android 中的 WindowManager 标志