package com.android.test;

import java.util.ArrayList;
import java.util.Iterator;

import android.app.Activity;
import android.content.ContentProviderOperation;
import android.content.OperationApplicationException;
import android.database.Cursor;
import android.os.Bundle;
import android.os.RemoteException;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener{

 int EMAIL;
 int PHONE;

 ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
 int rawContactInsertIndex = 0;

 ArrayList<String> arrPhoneList = new ArrayList<String>();
 ArrayList<String> arrNameList = new ArrayList<String>();
 

 Button button1 = null;
 Button button2 = null;
 EditText ed1 = null;
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  String[] projection = new String[]{
    ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
    ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,  
    ContactsContract.CommonDataKinds.Phone.NUMBER,
  };
  String sortOrder = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE LOCALIZED ASC";

  Cursor c = managedQuery(Phone.CONTENT_URI, projection, null, null, sortOrder); //폰북의 주소록을 가리키고있음

  ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
    .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE,null)
    .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
    .build());
  ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,
      rawContactInsertIndex)
      .withValue(ContactsContract.Data.MIMETYPE,
        ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
        .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,"테스트10")
        .build());
  ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,
      rawContactInsertIndex)
      .withValue(ContactsContract.Data.MIMETYPE,
        ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
        .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, "010-1111-2222")
        .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
          ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
          .build());
  ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,
      rawContactInsertIndex)
      .withValue(ContactsContract.Data.MIMETYPE,
        ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
        .withValue(ContactsContract.CommonDataKinds.Email.DATA, "bbackddoo@naver.com")
        .withValue(ContactsContract.CommonDataKinds.Email.TYPE,
          ContactsContract.CommonDataKinds.Email.TYPE_WORK)
          .build());
  try{
   getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);

  }catch(RemoteException e){
   //TODO Auto-generated catch block
   e.printStackTrace();
  }catch (OperationApplicationException e){
   //TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  button1 = (Button)findViewById(R.id.bt1);
  button2 = (Button)findViewById(R.id.bt2);
  ed1 = (EditText)findViewById(R.id.ed1);
  
  button1.setOnClickListener(this);
  button2.setOnClickListener(this);
 

  String [] arrProjection = { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME };
  String [] arrPhoneProjection = { ContactsContract.CommonDataKinds.Phone.NUMBER };

  Cursor clsCursor = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI,
    arrProjection, ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1" , null, null );

  while( clsCursor.moveToNext() )
  {
   String strContactId = clsCursor.getString( 0 );

   Cursor clsPhoneCursor = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, arrPhoneProjection
     , ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + strContactId, null, null );
   while( clsPhoneCursor.moveToNext() )
   {
    // 이름과 전화 번호를 각각의 리스트에 저장한다.
    arrNameList.add( clsCursor.getString( 1 ) );
    arrPhoneList.add( clsPhoneCursor.getString( 0 ) );
   }
   clsPhoneCursor.close();  
  }

  clsCursor.close();
 }
 

public void onClick (View v)
{
   
 if( v.getId() == R.id.bt1){
     
  for(int i=0, n = arrNameList.size(); i<n ; i++)
  {    
   if(ed1.getText().toString().equals(arrNameList.get(i)))
    {    
      Toast.makeText(MainActivity.this,
      "이미존재하는연락처",Toast.LENGTH_LONG).show();
  
 }
   else
   {    
    ed1.setText("");
    
   }
   }
  
  }
 
  else if(v.getId() == R.id.bt2){
         
   for(int i=0, n = arrNameList.size(); i<n ; i++)
   {     
   if(ed1.getText().toString().equals(arrNameList.get(i)))
   {
    Toast.makeText(MainActivity.this,
      "이미존재하는연락처",Toast.LENGTH_LONG).show();
    
   }
   else
    {
    Toast.makeText(MainActivity.this,
          "존재하지 않습니다.",Toast.LENGTH_LONG).show();
    
  }
   }
  }
}
}

arrNameList 이것은 제가 핸드폰내부 연락처의 이름들을 저장해놓은 arraylist입니다.

Log를 찍어봐도 사이즈도 다 잘 되고, 객체도 다 잘들어 있습니다.

그런데 막상 맞는지 확인하려고 Edittext에  입력을하면 첫번째객체만 있다고 확인이 되고, 두번째 객체의 이름들을 입력하면

없는것으로 나옵니다.

도대체가 이유를 몰라서 고수님들께 조언좀 구하고싶습니다. 답이않보입니다저는 ..

아 그리고 공지사항은 읽었습니다.