0

我想用下面的代碼在StructuredName中添加聯繫人數據。問題是GIVEN_NAME已添加,但其他字段未添加。將數據添加到ContactsContract.CommonDataKinds.StructuredName中的問題

ops.add(ContentProviderOperation 
       .newInsert(ContactsContract.Data.CONTENT_URI) 
       .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
       .withValue(
         ContactsContract.Data.MIMETYPE, 
         ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) 
       .withValue(
         ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, 
         givenName).build()); 

     ops.add(ContentProviderOperation 
       .newInsert(ContactsContract.Data.CONTENT_URI) 
       .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
       .withValue(
         ContactsContract.Data.MIMETYPE, 
         ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) 
       .withValue(
         ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, 
         familyName).build()); 

FAMILY_NAME未被添加。如果我評論GIVEN_NAME的屏蔽碼,則會添加FAMILY_NAME。但其餘字段沒有被添加。

+0

你能不能給我們在代碼中的一些更多的環境? – pablisco 2012-03-24 02:29:09

+0

問題解決了。在下面的帖子中回答:) – 2012-03-28 13:30:37

回答

2

只好以下列方式將所有的數據後,.build():

ops.add(ContentProviderOperation 
      .newInsert(ContactsContract.Data.CONTENT_URI) 
      .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
      .withValue(
        ContactsContract.Data.MIMETYPE, 
        ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) 
      .withValue(
        ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, 
        givenName) // Don't call build() here 


      .withValue(
        ContactsContract.Data.MIMETYPE, 
        ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) 
      .withValue(
        ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, 
        familyName) 

      .withValue(
        ContactsContract.Data.MIMETYPE, 
        ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) 
      .withValue(
        ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME, 
        middleName) 

      .withValue(
        ContactsContract.Data.MIMETYPE, 
        ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) 
      .withValue(
        ContactsContract.CommonDataKinds.StructuredName.PREFIX, 
        prefix) 

      // and other data that goes into StructuredName 


      .build()); // Now call build() 
+0

那麼如何有條件地添加字段?例如,'if(familyName!= null)//添加姓氏'... – Deqing 2013-09-22 07:20:47

相關問題