Я использую фильтр с ListView, который заполняется контактными данными, содержащими имена и номера.
Теперь у меня есть две проблемы, когда я набираю текст в EditText
, который, в свою очередь, срабатывает adapter.getFilter().filter(s.toString())
1) Когда я набираю «аа» последним (в моем коде)
я могу видеть имя, начинающееся с «аа», например, aakruti, но в то же время я также могу просматривать адреса электронной почты, которые я не хотел делать видимыми при срабатывании фильтра.
2) Когда я набираю «аа» последним (во встроенном списке контактов телефона)
я вижу имя, начинающееся с «аа», например, аакрути
но мне не хватает одного имени, то есть SATYA (которое отображается при поиске контактов, когда я ввожу в него «aa»)
вот мой запрос фильтра, внутри runQueryOnBackgroundThread
StringBuilder buffer = null;
String[] args = null;
if (constraint != null) {
buffer = new StringBuilder();
buffer.append("UPPER(");
buffer.append(ContactsContract.Contacts.DISPLAY_NAME);
buffer.append(") GLOB ?");
args = new String[] { constraint.toString().toUpperCase() + "*" };
}
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
System.out.println(buffer);
return mContent.query(
ContactsContract.Contacts.CONTENT_URI,
projection,
buffer == null ? null : buffer.toString(),
args,sortOrder
);
проекционные данные
public static String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME
};
ИЗМЕНИТЬ
До сих пор я пытался получить доступ
ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME
ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME
ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME
ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME
Но GIVEN_NAME тоже показывает мало email address
и даже показывает contact name which has email address
Например ,
[email protected]
Raul Jakson (which only has email address no contact number)
Raul Jakson ( i see this name twice as it has two different email address , but i wanna see it as name )
Так может ли кто-нибудь сказать мне, как я могу ограничить адреса электронной почты и показать только ИМЕНА, которые имеют только контактные номера телефонов?
buffer.append(" AND " + ContactsContract.Contacts.FAMILY_NAME + " NOT LIKE '%@%');
- person SoftWyer   schedule 21.02.2012Joined Contacts
, но в списке контактов я вижу Рауля Джексона как одного, так как я могу сделать его одной сущностью, как это делает контакт - person Hunt   schedule 21.02.2012