2017-10-29 1 views
0

Ich habe ein Problem, wenn ich gemeinsame Datenarten mehr als einmal android Studio verwende es nicht erkennt. Bei der Eingabe in die Zeichenfolge named from.Versucht man alle Kontakte in eine Listview zu bekommen?

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); 

     } 

}

+0

möglich Duplikat: https://stackoverflow.com/questions/12562151/android-get-all-contacts. Lesen Sie diesen Thread. Hoffe es hilft dir. – prdp89

+0

@hman können Sie erklären, was Sie meinen, wenn ich gemeinsame Datenarten mehr als einmal verwende? Außerdem sollten Sie Ihre Abfrage nicht in onCreate ausführen, und Sie sollten "startManagingCursor" überhaupt nicht verwenden, siehe: https://stackoverflow.com/a/27208076/819355 – marmor

Antwort

3
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(); 
Verwandte Themen