getcontentresolver()未定义类型

时间:2013-08-12 08:24:49

标签: android android-contentresolver

我尝试获取所有联系人姓名和号码,我正在尝试使用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();
}

}

2 个答案:

答案 0 :(得分:13)

问题是Context,传递Activity的上下文,其中使用了Class的构造函数:

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

然后使用

  

context.getContentResolver()

绝对完善了上下文的使用。

答案 1 :(得分: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();}}