Заполнить массив типа ContentProviderOperation

181
18 апреля 2017, 07:43

Здравствуйте, появилась проблема. Делаю телефонную книжку, конкретно - изменение контакта (при тапе на контакт в списке открывается новая активность с именем и номерами контакта). Прочитал о способе изменения данных:

ArrayList<ContentProviderOperation> ops = new   ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
    .withSelection(ContactsContract.Contacts.DISPLAY_NAME + "=" + name, new String[]{ContactsContract.Contacts._ID})
    .withValue(ContactsContract.Contacts.DISPLAY_NAME, newName)
    .build()
);
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);

Но при попытке выполнить этот код программа вылетает с ошибкой

04-17 09:14:59.717 18143-18143/com.diplom.modifikator.organizer W/System.err: java.lang.IllegalArgumentException: Cannot bind argument at index 1 because the index is out of range.  The statement has 0 parameters.
04-17 09:14:59.719 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167)
04-17 09:14:59.719 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.database.DatabaseUtils.readExceptionWithOperationApplicationExceptionFromParcel(DatabaseUtils.java:160)
04-17 09:14:59.719 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.content.ContentProviderProxy.applyBatch(ContentProviderNative.java:519)
04-17 09:14:59.719 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.content.ContentProviderClient.applyBatch(ContentProviderClient.java:401)
04-17 09:14:59.719 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.content.ContentResolver.applyBatch(ContentResolver.java:1288)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at com.diplom.modifikator.organizer.Single_contact_activity.ApplyChanges(Single_contact_activity.java:294)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.view.View.performClick(View.java:4802)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.view.View$PerformClick.run(View.java:20101)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.os.Handler.handleCallback(Handler.java:810)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.os.Looper.loop(Looper.java:189)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5535)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950)
04-17 09:14:59.720 18143-18143/com.diplom.modifikator.organizer W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)

Проще говоря, массив ops не заполнен. Как мне его заполнить текущим контактом? Данные контакта (имя, номера телефонов и их типы) берутся при открытии формы.

READ ALSO
BottomNavigationView, переключение между activity

BottomNavigationView, переключение между activity

Здравствуйте Я только начинающий и прошу не судить строго и помочьПроблема состоит в том, что я имею 5 кнопок на BottomNavigationBar и вопрос в том,...

293
Как правильно получить массив байт по TCP/IP?

Как правильно получить массив байт по TCP/IP?

Есть сервер, который по команде присылает некоторое количество байтОбъём данных заранее известен - 280 Кбайт

221
Парсинг json в java

Парсинг json в java

Хочу сделать так, чтобы i-тому элементу hostidList соответствовал i-тый host (тип ArrayList)Но проблема в том, что не могу корректно то ли ввести, то ли вывести...

312
Как сравнить String и StringBuffer?

Как сравнить String и StringBuffer?

Нужно определить, является ли введенный текст палиндромомПалиндро́м — буквосочетание, слово или текст, одинаково читающееся в обоих направлениях

247