2013-08-12 53 views
5

我試圖讓所有的聯繫人姓名和電話號碼,我嘗試使用getContentResolver但我正在逐漸getcontentresolver()是未定義的類型

的方法獲取內容解析器()是未定義的類型

這個錯誤。

我該如何解決?

這裏是下面的代碼:

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

}

回答

10

問題是Context,通過你的Activity其使用的情況下你Class在它的構造函數:

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

然後使用

context.getContentResolver()

絕對完美的使用上下文在這裏。

0

你也可以簡單地使用:

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