我在“this.getContentResolver()”行中收到错误“索引2处的绑定值为空”.applyBatch(ContactsContract.AUTHORITY,ops); 仅当我尝试将多个联系人更新在一起时才会发生此崩溃,并且对于少量联系人工作正常。 我在列表视图中显示联系人,并使用复选框选择联系人,然后单击按钮调用以下方法。 即使应用程序崩溃,也会发生更新。
public void updateContact(String contactId, String type) {
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
String selectPhone = ContactsContract.Data.CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "='" +
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'" + " AND " + ContactsContract.CommonDataKinds.Phone.TYPE + "=?";
String[] phoneArgs = new String[]{contactId, type};
ops.add(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI)
.withSelection(selectPhone, phoneArgs).build());
try {
this.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
} catch (RemoteException e) {
e.printStackTrace();
} catch (OperationApplicationException e) {
e.printStackTrace();
}