按照教程get android contact phone number list
我提取了联系人的电话号码和姓名,如何清理列表视图,没有重复的联系人,可能按姓名排序?
试试这个:
Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null); List<String> phoneNumbers = new ArrayList<String>(); while (phones.moveToNext()) { String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); System.out.println(".................."+phoneNumber); if(!phoneNumbers.contains(phoneNumber)) { phoneNumbers.add(phoneNumber); } } Collections.sort(phoneNumbers);
简而言之:在添加电话号码之前,请检查电话号码是否已在列表中 . 在进行检查之前从每个电话号码中删除任何空格可能很方便,这样您就可以确保没有重复项通过了 .
有关排序的更多信息:http://developer.android.com/reference/java/util/Collections.html#sort%28java.util.List%3CT%3E%29
试试这个;
使用不允许重复的数据结构,例如HashMap中
使用电话号码作为密钥
例如Key = phoneNumber,Value = Name OR
Key = phoneNumber,Value = OtherContactDetails的列表
使用集合进行排序
将已排序的集合传递给适配器
2 回答
试试这个:
简而言之:在添加电话号码之前,请检查电话号码是否已在列表中 . 在进行检查之前从每个电话号码中删除任何空格可能很方便,这样您就可以确保没有重复项通过了 .
有关排序的更多信息:http://developer.android.com/reference/java/util/Collections.html#sort%28java.util.List%3CT%3E%29
试试这个;
使用不允许重复的数据结构,例如HashMap中
使用电话号码作为密钥
例如Key = phoneNumber,Value = Name OR
Key = phoneNumber,Value = OtherContactDetails的列表
使用集合进行排序
将已排序的集合传递给适配器