Я прочитал контакты с телефона и отобразил их в виде списка. Я хочу получить информацию о контакте (имя, адрес электронной почты, номер) при нажатии на элемент. Я в состоянии получить номер и имя, но столкнулся с некоторыми проблемами при получении электронной почты. Проблема в том, что я не могу против совпадений с ContactsContract.Contacts._ID и ContactsContract.CommonDataKinds.Email.CONTACT_ID. Я хочу сказать, что курсор: .getString (cursor? .GetColumnIndex (ContactsContract.Contacts._ID)) и ContactsContract.CommonDataKinds.Email.CONTACT_ID не совпадают. Может кто-нибудь помочь мне с этим? Я уже искал другие ресурсы, но не могу найти проблему.
fun read()
{
var selected_columns = arrayOf(
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone._ID)
val sa1 = "%$query%";
var cursor : Cursor? = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
selected_columns,selected_columns[0]+ " LIKE ?", arrayOf(sa1),null)
startManagingCursor(cursor)
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 ->
var contactAddress = ""
var selectedid = cursor?.getString(cursor?.getColumnIndex(ContactsContract.Contacts._ID))
Log.i("gotmail",selectedid.toString())
val name = cursor?.getString(cursor?.getColumnIndex(selected_columns[0]))
val phone = cursor?.getString(cursor?.getColumnIndex(selected_columns[1]))
val emails = ArrayList<String>()
var mEmail = ""
var selection = ContactsContract.CommonDataKinds.Email.CONTACT_ID+" = ?"
val mEmailCursor: Cursor? = contentResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null, selection, arrayOf(selectedid), null);
if (mEmailCursor!!.getCount() > 0) {
while (mEmailCursor.moveToNext()) {
mEmail = mEmailCursor.getString(mEmailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)).trim();
if (mEmail != null) {
emails.add(mEmail);
}
}
}
val emaillist = emails
Log.i("gotmail",emaillist.size.toString())
for (i in emaillist) {
Log.i("gotmail",i)
}
val email = "hello"
//Log.i("gotmail",emaillist)
val intent = Intent(this, Contactdetails::class.java)
intent.putExtra("personname",name)
intent.putExtra("personnumber",phone)
intent.putExtra("personemail",email)
startActivity(intent)
}
}