2013-08-12 14 views
5

cerco di ottenere tutti i nomi dei contatti e il numero e sto cercando di utilizzare getContentResolver ma io sono sempregetcontentresolver() non è definito per il tipo

il metodo GET resolver contenuto() non è definito per il tipo di

questo errore.

Come posso risolvere il problema?

Ecco il codice qui sotto:

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

}

risposta

10

Il problema è Context, passare contesto del vostro Activity che utilizzano il tuo Class nella sua Costruttore:

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

quindi utilizzare

context.getContentResolver()

assolutamente perfetto l'uso del contesto qui.

0

Si può anche semplicemente utilizzare questo:

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