2013-08-12 5 views
5

Ich versuche, alle Kontaktnamen und Zahl zu erhalten, und ich versuche, getContentResolver zu verwenden, aber ich bingetcontentresolver() für den Typ undefined

das Verfahren erhalten Inhalt Resolver bekommen() für den Typ nicht definiert ist

dieser Fehler.

Wie kann ich es beheben? Hier

ist der Code unter:

public class ContactManager { 

public ArrayList<Product> getContactNumber() { 
    Cursor phones = getContentResolver().query(
      ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, 
      null, null); 
    while (phones.moveToNext()) { 
     String name = phones 
       .getString(phones 
         .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
     String phoneNumber = phones 
       .getString(phones 
         .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
    } 
    phones.close(); 
} 

}

Antwort

10

Das Problem ist Context, passieren Kontext Ihrer Activity, die Ihr verwenden Class in seiner Constructor:

Context context; 
public ContactManager (Context context) { 
    this.context = context; 
} 

dann verwenden

context.getContentResolver()

absolut perfekt die Verwendung von Kontext hier.

0

Sie können auch einfach verwenden:

public class ContactManager { 

    public ArrayList<Product> getContactNumber(Context mContext) { 
    Cursor phones = mContext.getContentResolver().query(
     ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, 
     null, null); 
    while (phones.moveToNext()) { 
    String name = phones 
      .getString(phones 
        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
    String phoneNumber = phones 
      .getString(phones 
        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
} 
    phones.close();}}