Я пытаюсь разработать приложение, которое будет считывать контакты с телефона и отображать имена контактов в виде списка. При щелчке элемента в списке просмотра информация о контакте, такая как имя, адрес электронной почты и номер телефона, будет отображаться в другой операции. Я могу отобразить имя и номер телефона, но не могу отобразить адрес электронной почты. Может ли кто-нибудь помочь внести необходимые изменения, чтобы прочитать адрес электронной почты и отобразить его в контактной информации?
var cursor : Cursor? = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,null,null,null)
startManagingCursor(cursor)
var selected_columns = arrayOf(
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone._ID)
var to = intArrayOf(android.R.id.text1)
simple = SimpleCursorAdapter(
this,android.R.layout.simple_list_item_1,cursor,selected_columns,to,0)
my_listview.adapter = simple
my_listview.setOnItemClickListener { parent, view, position, id ->
//Log.i("Details","Opened")
val name = cursor?.getString(cursor?.getColumnIndex(selected_columns[0]))
val phone = cursor?.getString(cursor?.getColumnIndex(selected_columns[1]))
val intent = Intent(this, Contactdetails::class.java)
intent.putExtra("personname",name)
intent.putExtra("personnumber",phone)
startActivity(intent)
}
#Edited and added the function to get emails
fun getemails(context:Context):ArrayList<String>{
val emails = ArrayList<String>()
var mEmail = ""
val mEmailCursor: Cursor? = contentResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Email.CONTACT_ID,null, null);
if (mEmailCursor!!.getCount() > 0) {
while (mEmailCursor.moveToNext()) {
mEmail = mEmailCursor.getString(mEmailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)).trim();
if (mEmail != null) {
emails.add(mEmail);
}
}
}
mEmailCursor.close();
return emails;
}