Kullanıcıların bağlantıları üzerinden canlı arama yapmayı deniyorum ve eşleşen her kişinin adını, küçük resmini ve adresini (varsa) almak istiyorum.Bir sorgu ile adresli (FORMATTED_ADDRESS) kişiler nasıl aranır?
Canlı arama, kullanıcı yazarken çalışıyor.
yüzden tipleri ma ve 'martin', 'Matthews'a' alacak ...O ulaşmak için deneyin
mat ile devam edeceğiz ve sadece 'Matthews' göreceksiniz Bu, aşağıdaki gibi tek bir sorguyla, ancak her zaman FORMATTED_ADRESS
alanındaki iletişim numarasını alırım. Ben JOIN
sorunu var sanırım, aynı sorguda ContactsContract.CommonDataKinds
ve ContactsContract.Contacts
kullanıyorum çünkü?
public static List<ContactModel> getContactsForQuery(Context context, String query) {
String[] projection = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
Contacts.PHOTO_THUMBNAIL_URI,
ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS
};
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String selection = ContactsContract.Contacts.DISPLAY_NAME + " LIKE '%" + query + "%'";
Cursor cursor = context.getContentResolver().query(uri, projection, selection, null,null);
if (cursor.moveToFirst()) {
do {
String name = cursor.getString(0);
String thumbail = cursor.getString(1);
String formattedADress = cursor.getString(2);
}
while (cursor.moveToNext());
}
Aslında
Contacts.DISPLAY_NAME
aşağıdaki Cursor detailCursor = context.getContentResolver().query(
ContactsContract.Data.CONTENT_URI,
new String[]{
CommonDataKinds.StructuredPostal.STREET,
CommonDataKinds.StructuredPostal.CITY,
CommonDataKinds.StructuredPostal.POSTCODE
},
ContactsContract.Data.CONTACT_ID + "=? AND "
+ CommonDataKinds.StructuredPostal.MIMETYPE + "=?",
new String[]{
String.valueOf(contactID),
CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE
},
null);
ancak böyle Contacts._ID
ile ikinci bir sorgu başlatmak
, Contacts._ID
için sorgulama
- ile sorunumu çözdü bu yıldız olacak t için her bir sorgu için en iyi yaklaşım olmayabilir.
Son sorum şu: Bu çalışmayı ilk sorgu ile almak mümkün mü?
Neden downvote? omething? – longilong