i need some help with a contacts picker class that ive got. The class retrieves the contacts list and allows me to choose one, but when I go and choose another one, it just replaces the first one. I want to make a list of contacts in my app and not only one.
Thank you, Noam
The Code:
public static final int PICK_CONTACT = 1;
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.activity_main);
    Button btnPickContact = (Button) findViewById(R.id.btnPickContact);
    btnPickContact.setOnClickListener(new OnClickListener() {
        public void onClick(View _view) {
            Intent intent = new Intent(Intent.ACTION_PICK,
                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
            startActivityForResult(intent, PICK_CONTACT);
        }
    });
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case (PICK_CONTACT): {
        if (resultCode == Activity.RESULT_OK) {
            Uri contentUri = data.getData();
            //Phone Name
            Cursor c = managedQuery(contentUri, null, null, null, null);
            c.moveToFirst();
            String name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
            //Phone Number
            String contactId = contentUri.getLastPathSegment();
            Cursor cursor = getContentResolver().query(Phone.CONTENT_URI,
                    null, Phone._ID + "=?", new String[] { contactId },
                    null);// < - Note, not CONTACT_ID!
            startManagingCursor(cursor);
            Boolean numbersExist = cursor.moveToFirst();
            int phoneNumberColumnIndex = cursor
                    .getColumnIndex(Phone.NUMBER);
            String phoneNumber = "";
            while (numbersExist) {
                phoneNumber = cursor.getString(phoneNumberColumnIndex);
                phoneNumber = phoneNumber.trim();
                numbersExist = cursor.moveToNext();
            }
            stopManagingCursor(cursor);
            //Set
            TextView tv = (TextView) findViewById(R.id.txtSelContact);
            tv.setText(name + "-" + phoneNumber);
        }
        break;
    }
    }
}
}
And here is the on create function:
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.activity_main);
    Button btnPickContact = (Button) findViewById(R.id.btnPickContact);
    btnPickContact.setOnClickListener(new View.OnClickListener() {
        public void onClick(View _view) {
            Intent intent = new Intent(Intent.ACTION_PICK,
                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
            startActivityForResult(intent, PICK_CONTACT);
        }
    });
    //you may fill it here e.g. from your db
    contactList=new ArrayList<String>();
    arrayAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, contactList);
    final ListView lv = (ListView) findViewById(R.id.ContactListView);
    lv.setAdapter(arrayAdapter);
}
This is the layout.xml (for some reason it didn't let me post the code so i linked to an image) :
https://imagizer.imageshack.us/v2/516x255q90/4/igi5.png
Lines 29 - 35:
btnPickContact.setOnClickListener(new View.OnClickListener() {
        public void onClick(View _view) {
            Intent intent = new Intent(Intent.ACTION_PICK,
                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
            startActivityForResult(intent, PICK_CONTACT);
        }
    });
 
    