0

I am having a problem if I use common data kinds more than once android studio it fails to recognize it. When being entered into the string away named from.

import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ListView;

import java.util.List;

public class ContactSelect extends ListActivity {
// google and find out what this stuff means later
@Override
public long getSelectedItemId() {
    return super.getSelectedItemId();
}

@Override
public int getSelectedItemPosition() {
    return super.getSelectedItemPosition();
}
// creating the list view Object
ListView Contacts;
Cursor cursor1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_contact_select);
          cursor1 =  getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, null, null, null);
          startManagingCursor(cursor1);

          String[] from = (ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.android.provider.ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Phone._ID);

        }

}

Pardeep Sharma
  • 407
  • 1
  • 5
  • 20
hman
  • 49
  • 7
  • possible duplicate of: https://stackoverflow.com/questions/12562151/android-get-all-contacts. Read this thread. Hope it helps you. – Pardeep Sharma Oct 29 '17 at 15:51
  • @hman can you explain what you mean by `if I use common data kinds more than once`? also, you shouldn't run your query in onCreate, and more so you shouldn't use `startManagingCursor` at all, see this: https://stackoverflow.com/a/27208076/819355 – marmor Oct 29 '17 at 18:47

1 Answers1

4
public void getContacts() {
    ContentResolver cr = getContentResolver();
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
            null, null, null, null);
    if (cur.getCount() > 0) {
        while (cur.moveToNext()) {
            String id = cur.getString(
                    cur.getColumnIndex(ContactsContract.Contacts._ID));
            String name = cur.getString(
                    cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
            if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
                        new String[]{id}, null);
                while (pCur.moveToNext()) {
                    String number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                    contactList.add(new Contact(name, number));
                }
                pCur.close();
            }
        }
    }
    cur.close();
Maitri
  • 513
  • 1
  • 3
  • 14