我正在开发一个Android应用程序,其中我从联系人列表中接收联系人并在列表视图中显示,当我显示移动号码时,如果用户在联系人中保存了两个手机号码,那么在列表视图中他的名字被重复,第二个移动号码显示在他的名字下面,所以如果为特定号码保存了两个手机号码,我只需要选择第一个号码,所以我需要在下面的代码中进行哪些更改,如果有人知道请帮忙。
Cursor c = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
ArrayList<Contact> contacts = new ArrayList<Contact>();
while (c.moveToNext())
{
int type = c.getInt(c.getColumnIndex(Phone.TYPE));
if (type == Phone.TYPE_MOBILE)
{
Contact con = new Contact(c.getString(c
.getColumnIndex(Contacts.DISPLAY_NAME)), c.getString(c
.getColumnIndex(Phone.NUMBER)));
contacts.add(con);
}
}
答案 0 :(得分:0)
public void readContacts() {
Cursor contactsCursor =getActivity().getContentResolver().query(ContactsContract
.Contacts.CONTENT_URI, null, null, null,ContactsContract.Contacts.DISPLAY_NAME);
mContactsMetaDataList = new ArrayList<>();
try {
Set<String> idSet = new HashSet<>();
if (contactsCursor.getCount() > 0) {
while (contactsCursor.moveToNext()) {
String id =contactsCursor.getString(contactsCursor.getColumnIndex
(ContactsContract.Contacts._ID));
String name =contactsCursor.getString(contactsCursor.getColumnIndex
(ContactsContract.Contacts.DISPLAY_NAME));
if(Integer.parseInt(contactsCursor.getString(contactsCursor.getColumnIndex
(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
idSet.add(name);
if (!idSet.contains(name)){
//add contact to your list here
}
}
}
}
}finally {
if (contactsCursor != null) {
contactsCursor.close();
}
}
}