2013-08-12 18 views
5

staram się uzyskać wszystkie nazwy i numery kontaktowe i staram się używać getContentResolver ale otrzymujęgetcontentresolver() jest zdefiniowana dla danego typu

sposób uzyskać zawartość resolverowi() jest zdefiniowana dla danego typu

ten błąd.

Jak mogę to naprawić?

Oto poniżej kod:

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

}

Odpowiedz

10

Problemem jest Context przechodzą kontekst swoimi Activity który Use Your Class w to Konstruktor:

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

następnie użyć

context.getContentResolver()

Absolutnie doskonałe wykorzystanie kontekstu tutaj.

0

Można też po prostu użyć tego:

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