2011-09-14 12 views
0

次のコードを使用して、プログラムで新しい連絡先を作成します。 このコードでは、特定の詳細を持つ連絡先リスト内に新しい連絡先を作成しますが、同じ連絡先のfirstnameが同じ名字フィールドを持つ複数の連絡先を作成する場合はループからこのコードを実行します。 "Crashre1234"を実行すると、(ループに従って)単一の連絡先のすべてのフィールドが複数回追加されます。私はフィールドを持つ現在のシステム時刻を使用して違いを作成します。 しかし運はありません。 私は何が恋しいのか分かりません。同じfirstnameで複数の連絡先をプログラムで作成するようにしてください

   ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>(); 
       op_list.clear(); 
       long tti = System.currentTimeMillis(); 
       ///for(int i=0;i<2;i++) 
       { 
        try{ 

         int backRefIndex = 0; 
         System.out.println("Array List: "+backRefIndex); 
         op_list.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI) 
         .withValue(RawContacts.ACCOUNT_TYPE, null) 
         .withValue(RawContacts.ACCOUNT_NAME, null) 
         .build()); 
         //backRefIndex = backRefIndex+1; 

         op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
         .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
         .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE) 
         .withValue(StructuredName.GIVEN_NAME, "Crashre1234"+"\r") 
         .build()); 
         //backRefIndex = backRefIndex+1; 

         /*op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
         .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
         .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE) 
         .withValue(StructuredName.FAMILY_NAME, "ABCre12") 
         .build());*/ 
         //backRefIndex = backRefIndex+1; 

         op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
         .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
         .withValue(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE) 
         .withValue(StructuredPostal.FORMATTED_ADDRESS, "Secret password"+tti) 
         .build()); 
         // backRefIndex = backRefIndex+1; 

         op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
         .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
         .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE) 
         .withValue(Phone.NUMBER, 11+tti) 
         .withValue(Phone.TYPE, Phone.TYPE_HOME) 
         .withValue(Phone.LABEL, "") 
         .build()); 
         // backRefIndex = backRefIndex+1; 

         op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
         .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
         .withValue(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE) 
         .withValue(Email.DATA, "[email protected]"+tti) 
         .withValue(Email.TYPE, Email.TYPE_HOME) 
         .build()); 
         // backRefIndex = backRefIndex+1; 
         op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
         .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
         .withValue(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE) 
         .withValue(Email.DATA, "[email protected]"+tti) 
         .withValue(Email.TYPE, Email.TYPE_HOME) 
         .build()); 
         // backRefIndex = backRefIndex+1; 

         ContentProviderResult[] result = activity.getContentResolver().applyBatch(ContactsContract.AUTHORITY, op_list); 
         Uri uri = result[0].uri; 
         System.out.println("URI: "+uri); 
         System.out.println("Thread finish"); 
          }catch(OperationApplicationException exp){ 
          exp.printStackTrace(); 
          }catch(RemoteException exp){ 
          exp.printStackTrace(); 
         } 
        } 
+0

正しい形式でコードを追加してください。ここにコピーして貼り付けて、フォーマットすることができます。 – ngesh

+0

なぜこれを2回転記しましたか? http://stackoverflow.com/questions/7412400/try-to-create-multiple-contacts-programmatically-with-same-firstname – trgraglia

+0

この投稿を編集し、正しい形式のコードを追加して[編集を保存]ボタンをクリックするとそれはページが見つかりませんエラーを送信します。 – Smith

答えて

0

oplistの宣言と初期化をforブロックの中に移動するだけです。

long tti = System.currentTimeMillis(); 
for(int i=0;i<2;i++) 
{ 
    ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>(); 
    op_list.clear(); 
    try{ 

     int backRefIndex = 0; 
     System.out.println("Array List: "+backRefIndex); 
     op_list.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI) 
     .withValue(RawContacts.ACCOUNT_TYPE, null) 
     .withValue(RawContacts.ACCOUNT_NAME, null) 
     .build()); 
     //backRefIndex = backRefIndex+1; 

     op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
     .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
     .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE) 
     .withValue(StructuredName.GIVEN_NAME, "Crashre1234"+"\r") 
     .build()); 
     //backRefIndex = backRefIndex+1; 

     /*op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
     .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
     .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE) 
     .withValue(StructuredName.FAMILY_NAME, "ABCre12") 
     .build());*/ 
     //backRefIndex = backRefIndex+1; 

     op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
     .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
     .withValue(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE) 
     .withValue(StructuredPostal.FORMATTED_ADDRESS, "Secret password"+tti) 
     .build()); 
     // backRefIndex = backRefIndex+1; 

     op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
     .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
     .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE) 
     .withValue(Phone.NUMBER, 11+tti) 
     .withValue(Phone.TYPE, Phone.TYPE_HOME) 
     .withValue(Phone.LABEL, "") 
     .build()); 
     // backRefIndex = backRefIndex+1; 

     op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
     .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
     .withValue(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE) 
     .withValue(Email.DATA, "[email protected]"+tti) 
     .withValue(Email.TYPE, Email.TYPE_HOME) 
     .build()); 
     // backRefIndex = backRefIndex+1; 
     op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
     .withValueBackReference(Data.RAW_CONTACT_ID, backRefIndex) 
     .withValue(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE) 
     .withValue(Email.DATA, "[email protected]"+tti) 
     .withValue(Email.TYPE, Email.TYPE_HOME) 
     .build()); 
     // backRefIndex = backRefIndex+1; 

     ContentProviderResult[] result = activity.getContentResolver().applyBatch(ContactsContract.AUTHORITY, op_list); 
     Uri uri = result[0].uri; 
     System.out.println("URI: "+uri); 
     System.out.println("Thread finish"); 
      }catch(OperationApplicationException exp){ 
      exp.printStackTrace(); 
      }catch(RemoteException exp){ 
      exp.printStackTrace(); 
    } 
}