2013-08-02 2 views
0

Я хочу обновить новую информацию о контакте. Мне нужно обновить 3 поля: Имя, номер телефона и название компании контакта. Вот мой код. Проблема моего заключается в следующем: метод не обновляет никакой новой информации!Обновить информацию о контакте в android

Не могли бы вы показать причины, по которым у меня есть ошибка. И покажи мне, как это исправить! Спасибо, парни!

public void editContact(String _id, String name, String phone, String company) { 
    ContentResolver cr = getContentResolver(); 

    String where = ContactsContract.Data._ID + " = ?" ; 
    String[] params = new String[] {_id}; 

    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
    ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) 
     .withSelection(where, params) 
     .withValue(ContactsContract.Data.DISPLAY_NAME, name) 
     .withValue(ContactsContract.CommonDataKinds.Phone.DATA, phone) 
     .withValue(ContactsContract.CommonDataKinds.Organization.DATA, company) 
     .build()); 

    try { 
     cr.applyBatch(ContactsContract.AUTHORITY, ops); 
    } catch (Exception e) { 
     Log.e("ERROR UPDATE: ", e.getMessage()); 
    } 
    this.finish(); 
    Toast.makeText(getApplicationContext(), "Contact saved", Toast.LENGTH_SHORT).show(); 
    this.callHomeActivity(); 
} 
+0

у вас есть какой-либо eroor если да любезно вывешивают logcat здесь – KOTIOS

+0

Ждите меня около 8 часов. Stackoverflow не позволяет мне публиковать ответ. – R700

+0

так что у вас проблема? – KOTIOS

ответ

0

@ Stacks28: Это я - Mr.Pakapun

Я пытаюсь обновить только имя контакта, используя код, приведенный ниже. НО, ничего не происходит! Имя контакта не обновлено. Что не так с кодом?

public void editContact(String _id, String name, String phone, String company) {   
    String where = ContactsContract.Data._ID + " = ? AND " + 
      ContactsContract.Data.MIMETYPE + "= ?"; 
    String[] params = new String[] {_id, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE }; 
    ContentResolver cr = getContentResolver(); 
    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 

    ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI) 
      .withSelection(where, params) 
      .withValue(StructuredName.DISPLAY_NAME, name) 
      .build()); 
    try {   
     cr.applyBatch(ContactsContract.AUTHORITY, ops); 
    } catch (Exception e) { 
     Log.e("ERROR UPDATE: ", e.getMessage()); 
    } 

} 
Смежные вопросы