Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Max_92
25 / 7 / 2
Регистрация: 26.04.2010
Сообщений: 205
#1

Контакты и CursorLoader - Android

12.03.2014, 21:25. Просмотров 773. Ответов 0
Метки нет (Все метки)

Задача следующая: в одном query получить курсор, в котором будет набор данных со всеми контактами, содержащий _id, display_name, email, photo. делаю следующий запрос с вот таким URI:
Java
1
2
3
4
5
6
getContentResolver()
                .query(CONTACT_URI,
                null,
                        Data.MIMETYPE + "=? OR " + Data.MIMETYPE + "=?",
                        new String[] { Email.CONTENT_ITEM_TYPE,
                                Phone.CONTENT_ITEM_TYPE }, Data.CONTACT_ID);
Есть две траблы:
1. При построении списка (mAdapter.swapCursor(data) получаю дублирующиеся контакты, а точнее контакты с одинаковыми именами и разными полями "data1". Т.е. всё неудобство в том, что "data1" это одновременно и CommonDataKinds.Email.ADDRESS и CommonDataKinds.Phone.NUMBER, из-за чего в результате запроса получаются два таких контакта: один с email, другой с номером. В случае, если есть email, но нет номера или наоборот - всё нормально. Вопрос: как подредактировать этот запрос, чтобы получить правильный набор данных?
2. Поскольку адаптер выглядит вот так:
Java
1
2
3
4
5
6
7
mAdapter = new SimpleCursorAdapter(MainActivity.this,
                R.layout.contacts_list_item, null, new String[] {
                        "display_name", "data1",
                        CommonDataKinds.Photo.PHOTO_URI }, new int[] {
                        R.id.textview_name, R.id.textview_email,
                        R.id.imageview_photo });
        contactsListView.setAdapter(mAdapter);
то при подставлении туда курсора, в котором для какой-то записи CommonDataKinds.Photo.PHOTO_URI нулевой, соответствующий пункт списка будет без картинки, т.е. предыдущий drawable, который задан в разметке для ImageView в src, затрётся и картинки просто не будет. Т.е. как сделать, чтобы при отсутствии фотки оставалась дефолтная картинка?
3. Если картинки и есть, то они слишком маленькие (хотя дефолтный drawable изначально выглядит как надо). Как их растянуть?

Добавлено через 30 минут
забыл пояснить: CONTACT_URI - это ContactsContract.Data.CONTENT_URI
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 21:25     Контакты и CursorLoader
Посмотрите здесь:

Android Контакты с гугл аккаунта
Контакты)
Как получить контакты? Android
Android Прикручиваем filter к listview c CursorLoader
Android Как сохранить контакт из моей БД в телефонные контакты?
контакты HTML, CSS
Android CursorLoader и фрагмент
CursorLoader+SQLite Android
Android Если контакты сохранены на сим карте,то не отображается
Читаются ли контакты с Viber Android
Android Передача контактов стандартному приложению "Контакты"

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 11:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru