【发布时间】:2017-12-04 10:43:09
【问题描述】:
我开发了一个程序,可以显示我电话簿中的联系人列表。 为此,我使用以下代码:
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI,
null,
ContactsContract.Contacts.HAS_PHONE_NUMBER + " = '1'",
null,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
if (cursor != null && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(id));
Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + id,
null,
null);
if (phones != null) {
while (phones.moveToNext()) {
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
contactList.add(new Contact(name, phoneNumber, id));
}
phones.close();
}
}
cursor.close();
}
adapter = new ContactAdapter(contactList, R.layout.contacts_list_item, getApplicationContext());
recyclerView.setAdapter(adapter);
一切正常,程序会显示我电话簿中的所有联系人,但我希望显示一定数量的联系人。 例如: 我打开程序并从电话簿中加载前 50 个联系人,滚动后,接下来的 50 个联系人被加载到列表的末尾。等等
【问题讨论】:
-
为此您需要实现拉动刷新功能
-
@AbdulWaheed 我如何首先限制下载的联系人数量?
标签: android android-recyclerview android-contentprovider android-contacts android-contentresolver