2013-08-12 34 views
5

tôi cố gắng để có được tất cả các tên liên lạc và số lượng và tôi đang cố gắng sử dụng getContentResolver nhưng tôi đang nhận đượcgetcontentresolver() là undefined cho các loại

phương pháp này có được giải quyết nội dung() là undefined cho các loại

lỗi này.

Làm cách nào để khắc phục sự cố?

Đây là đoạn mã dưới đây:

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

}

Trả lời

10

Vấn đề là Context, vượt qua bối cảnh Activity của bạn mà sử dụng của bạn Class trong đó là vị thi công:

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

sau đó sử dụng

context.getContentResolver()

hoàn toàn hoàn hảo việc sử dụng ngữ cảnh tại đây.

0

Bạn cũng có thể sử dụng đơn giản:

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();}} 
Các vấn đề liên quan