Intereting Posts
Как использовать AsyncTask с помощью ThreadPoolExecutor Лучшая инъекция зависимости кинжала на основе типа сборки и вкуса? Firebase DB: Проверьте, нет ли у узла дочерних элементов? Передача целого числа между действиями и намерениями в Android всегда происходит в нуле / нуле Proguard возвратила ошибку в библиотеке Служб Google Play Программно получить время оператора сети (Android) Android Webview – веб-страница должна соответствовать экрану устройства Android «лучшая практика» для коллективного сотрудничества и развития? Несколько файлов dex – Превращение в формат Dalvik не удалось – Не удалось выполнить dex Соответствующее умножение матриц для вращения / перевода Автоматическое зеркальное отображение макета в левом левом углу с леденцом Не удалось разрешить суперкласс класса Landroid / support / v4 / app / FragmentActivity WearableListView setEnableGestureNavigation недоступен Android.R.color.transparent не полностью прозрачный Как заставить RecyclerView прокручивать, когда предметов недостаточно, чтобы заполнить высоту sceen

Android – получение списка контактов с уличными адресами, но не таких недорогих, как Skype, где адрес является только городом и штатом

Я получил курсор, получая все контакты в приложении, у которых есть адрес улицы. Затем этот курсор передается в адаптер. Все идет нормально. Кроме того, я также получаю кучу недорогих контактов (в основном из Skype), которые имеют только информацию о состоянии / стране. Есть ли простой способ изменить URI, чтобы пропустить их?

public Cursor getDirectoryList (CharSequence constraint) { String[] selectionArguments = { "%"+constraint.toString()+"%" }; String selection = ContactsContract.CommonDataKinds.StructuredPostal.DISPLAY_NAME + " like ?"; Uri uri = ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI; String sortOrder = ContactsContract.CommonDataKinds.StructuredPostal.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; Cursor cr = getContentResolver().query(uri, null, selection, selectionArguments, sortOrder); return cr; } 

    Вы можете изменить selection и / или selectionArgs чтобы указать больше критериев, например, чтобы поле «Улица» не было нулевым:

     String selection = ContactsContract.CommonDataKinds.StructuredPostal.DISPLAY_NAME + " like ? AND " + ContactsContract.CommonDataKinds.StructuredPostal.STREET + " IS NOT NULL"; 

    Это просто SQL, поэтому укажите столько полей из ContactsContract.CommonDataKinds.StructuredPostal и любых условий для них, которые вы хотите.