Получите все имена и номера контактов в виде строкового списка на Android

Я нашел этот красивый внешний вид для списка контактов: https://github.com/thehung111/ContactListView

Однако контакты жестко закодированы. Поэтому мне нужно получить телефонные контакты и заполнить список контактов.

Вот что я пробовал:

public class ExampleDataSource { public static List<ContactItemInterface> getSampleContactList(){ List<ContactItemInterface> list = new ArrayList<ContactItemInterface> (); Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; String[] projection = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER}; Cursor people = getContentResolver().query(uri, projection, null, null, null); int indexName = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME); int indexNumber = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); people.moveToFirst(); do { String name = people.getString(indexName); String number = people.getString(indexNumber); list.add(new ExampleContactItem(name , number ) ); } while (people.moveToNext()); /* Example inputs for contact list list.add(new ExampleContactItem("Lizbeth" , "Lizbeth Crockett" ) ); list.add(new ExampleContactItem("Lizbeth" , "Lizbeth Crockett" ) ); list.add(new ExampleContactItem("Zachery" , "Zachery Loranger" ) ); list.add(new ExampleContactItem("Vada" , "Vada Winegar" ) ); list.add(new ExampleContactItem("Essie" , "Essie Pass" ) ); */ return list; } 

}

Я получил ошибку на getContentResolver () и попытался расширить класс до приложения и т. Д. Вам не повезло.

Поэтому главный вопрос заключается в том, как получить список, содержащий имена и телефонные номера, в виде строкового списка на Android.

Вы заявили ниже разрешение в своем манифесте? Если нет, пожалуйста, сообщите об этом.

  <uses-permission android:name="android.permission.READ_CONTACTS" /> 

Он покажет все контакты Имя и их номер телефона в новой строке:

 String names=""; Cursor people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null,null,null, null); while (people.moveToNext()) { int i=people.getColumnIndex(PhoneLookup.DISPLAY_NAME); int i2=people.getColumnIndex(PhoneLookup._ID); String name=people.getString(i); String id1=people.getString(i2); names+=name+":"; Uri uri2 = ContactsContract. CommonDataKinds.Phone.CONTENT_URI; String[] projectio = new String[] { ContactsContract.CommonDataKinds. Phone.NUMBER }; String selectio= ContactsContract. CommonDataKinds.Phone.CONTACT_ID + "=?"; String[] selectionArg = new String[] {id1 }; Cursor peopl=getContentResolver().query(uri2,null,selectio,selectionArg,null); while(peopl.moveToNext()) { int i3=peopl.getColumnIndex(CommonDataKinds.Phone.NUMBER); String phonenum=peopl.getString(i3); names+=phonenum+"\n"; } } Log.d("names":names); в String names=""; Cursor people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null,null,null, null); while (people.moveToNext()) { int i=people.getColumnIndex(PhoneLookup.DISPLAY_NAME); int i2=people.getColumnIndex(PhoneLookup._ID); String name=people.getString(i); String id1=people.getString(i2); names+=name+":"; Uri uri2 = ContactsContract. CommonDataKinds.Phone.CONTENT_URI; String[] projectio = new String[] { ContactsContract.CommonDataKinds. Phone.NUMBER }; String selectio= ContactsContract. CommonDataKinds.Phone.CONTACT_ID + "=?"; String[] selectionArg = new String[] {id1 }; Cursor peopl=getContentResolver().query(uri2,null,selectio,selectionArg,null); while(peopl.moveToNext()) { int i3=peopl.getColumnIndex(CommonDataKinds.Phone.NUMBER); String phonenum=peopl.getString(i3); names+=phonenum+"\n"; } } Log.d("names":names); 
Intereting Posts
GridView с квадратными элементами в андроиде с адаптивной шириной / высотой Можно ли использовать lockCanvas () в обратном вызове onPreviewFrame? Очистить маркеры от Google Карты на Android Получение имени пакета и подписей из uid / pid приложения в собственном клиенте Выполнение сканирования UPNP не возвращает мост Philips Hue No postgresql имя пользователя, указанное в пакете запуска CalledFromWrongThreadException: только исходный поток, создавший иерархию представления, может касаться представлений AutoCompleteTextView, поддерживаемый CursorLoader Этот класс обработчика должен быть статическим или может возникнуть утечка: AsyncQueryHandler LoganSquare анализирует общий объект или карту «Вы должны использовать тему Theme.Appcompat …» при тестировании ActionBarActivity, но я Архитектура Android-приложений – RxJava Cordova Splashscreen не работает с Intel XDK Проблема с сертификатом: на странице SSL появляется сообщение «вам нужно установить контакт блокировки экрана или пароль, прежде чем вы сможете использовать хранилище учетных данных» на Android Что означает андроид: включено для обслуживания?