Вот мой код в kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK) { // Check for the request code, we are usign multiple startActivityForReslut
when (requestCode) {
PICK_CONTACT -> {
var cursor: Cursor? = null
try {
val contactUri:Uri=data!!.data!!
cursor=contentResolver.query(contactUri,null,null,null,null)
if (cursor!!.moveToFirst()){
val name= cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME))
val no= cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))
Log.e("data", "name: $name, Number: $no")
cursor.close()
}
} catch (e: Exception) {
e.printStackTrace()
Toast.makeText(this, e.message, Toast.LENGTH_SHORT).show()
}
}
}
} else {
Log.e("MainActivity", "Failed to pick contact")
}
}
и ошибка:
Не удалось прочитать строку 0, столбец -1 из CursorWindow, которое имеет 1 строку, 36 столбцов.