Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
MODifikaTOR18
0 / 0 / 1
Регистрация: 26.05.2016
Сообщений: 80
Завершенные тесты: 1
0

Получить номер телефона контакта по имени

11.04.2017, 14:50. Просмотров 865. Ответов 4
Метки (Все метки)

Здравствуйте, делаю контактную книжку (работа с системным файлом контактов). Необходимо по клику на контакт открыть новую активность, передать в неё имя контакта и по имени вытянуть нужную информацию на экран. Имя передаётся, но дальше всё ложится:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_single_contact_activity);
 
        Log.w("Начинаю работу", "");
 
        nameEText = (EditText) findViewById(R.id.cont_name);
        phoneEText = (EditText) findViewById(R.id.cont_phone);
        phoneEType = (Spinner) findViewById(R.id.cont_phone_type);
 
        String name = getIntent().getExtras().getString("contact_name");
 
        Log.w("Event log", "Данные взяты");
 
        Cursor c = getContentResolver().query(
                ContactsContract.Contacts.CONTENT_URI,
                new String[] {ContactsContract.Contacts._ID},
                ContactsContract.Contacts.DISPLAY_NAME + " = '" + name + "'", null, null);
        Log.w(LOG_TAG, "Запрос построен");
 
        if(c.getCount() > 0) {
                Log.w("Heil to the developer", "I've found this phone");
                while (c.moveToFirst()) {
                    String ID = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID)); //на этой строке выполнение кода прекращается 
                    if (Integer.parseInt(c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                        Cursor pc = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                                ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[]{ID}, null);
                        Log.w(LOG_TAG, "Перехожу к номерам");
 
                        while (pc.moveToNext()) {
                            String nomer = pc.getString(pc.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                            Log.e(LOG_TAG, nomer);
                        }
                        pc.close();
                    }
                }
 
                Log.w("Номер телефона", nomer);
 
                nameEText.setText(name);
                phoneEText.setText(nomer);
 
                c.close();
 
        } else {
            Log.w("Heil to the developer", "Phone doesn't exist");
        }
        c.close();
    }
И в логе пишет такую ошибку:
Java
1
04-11 14:47:14.144 28962-28962/com.diplom.modifikator.organizer E/CursorWindow: Failed to read row 0, column -1 from a CursorWindow which has 1 rows, 1 columns.
Как мне решить проблему?

Вернуться к обсуждению:
Получить номер телефона контакта по имени
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2017, 14:50
Готовые ответы и решения:

Как набрать номер по имени контакта
Нужно набрать номер через Intent по имени контакта. Как это можно сделать? ...

Как получить свой номер телефона из веб риложения
Приветствую! Собственно задача следующая: нужно в веб приложении, запущенном в...

Выбор нужного номера телефона у контакта
Здравствуйте! Мне нужно сделать выбор нужного контакта и вывод его номера в...

Преобразование имени контакта в строку
Добрый день! С помощью примера из SDK извлек имена контактов. private Cursor...

Как получить данные контакта из Contact Provider
Подскажите как получить все данные из Contact Provider относящиеся к...

4
Другие темы раздела
Программирование Android Картинка становится некачественной http://www.cyberforum.ru/android-dev/thread1958118.html
Размер исходной картинки 96х96px через...
Программирование Android Как отправить переменную на сервер Здравствуйте. У меня банальный вопрос..Есть например в андроид программе переменная которую я хочу отправить на сервер(php чисто для примера). Как это осуществить? Немного погуглил нашел про... http://www.cyberforum.ru/android-dev/thread1958062.html
Куда делась память на android Программирование Android
Здраствуйте! Я не андроид-разработчик, но решил написать свой вопрос здесь так как тут наверняка сидят люди хорошо разбирающиеся в этой системе. Проблема вот в чём. Установил одну объёмную игру к...
Программирование Android Передача цвета в GREED
Привет всем! начинаю только изучать андройд и приложения! есть рабочая программа изменения цвета фона из полученных данных со слайдера, теперь вот хотелось бы что бы этот полученный цвет выводился...
Программирование Android Floating Actin Button и событие когда кнопка спряталась http://www.cyberforum.ru/android-dev/thread1957984.html
День добрый! Сделал открытие AlertDialog на нажатие по FloatingActionButton, и внутри обработчика нажатия пишу: floatingActionButton.hide(); Анимация вроде бы есть, но на глаз положения два...
Программирование Android MySQL и Android У меня есть сервер phpmyadmin, я хочу подключиться к нему с Android ввожу все правильно, но Android мне пишет: access failed for user 'мой логин'. Как исправить и подключиться подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru