Получение адреса электронной почты контакта при нажатии на элемент представления списка - PullRequest
0 голосов
/ 30 октября 2019

Я прочитал контакты с телефона и отобразил их в виде списка. Я хочу получить информацию о контакте (имя, адрес электронной почты, номер) при нажатии на элемент. Я в состоянии получить номер и имя, но столкнулся с некоторыми проблемами при получении электронной почты. Проблема в том, что я не могу против совпадений с 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)

    }
}
...