Я пытаюсь создать приложение, которое получает список контактов и помещает их в ListView. Я планирую сохранить номер телефона в переменной, но сейчас он отображается в сообщении Toast, чтобы я мог подтвердить правильность значения.
AddNewAlarm.kt
package com.example.safetybuddy
import android.content.ContentResolver
import android.database.Cursor
import android.location.Location.convert
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.ContactsContract
import android.telephony.PhoneNumberUtils
import android.view.View
import android.widget.AdapterView
import android.widget.Button
import android.widget.SimpleCursorAdapter
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.get
import kotlinx.android.synthetic.main.activity_add_new_alarm.*
import kotlinx.android.synthetic.main.activity_users.*
import java.util.logging.Logger.global
class AddNewAlarm : AppCompatActivity() {
@RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_add_new_alarm)
// code to make the button work
val button = findViewById<Button>(R.id.btnAdd)
button.setOnClickListener{
// populate the listView
populate()
}
// get the number when an item is clicked
listView.setOnItemClickListener{ _,_,pos,_ ->
Toast.makeText(this, listView.getItemAtPosition(pos).toString(), Toast.LENGTH_SHORT).show()
}
}
private fun populate(){
// defines the columns
var cols = listOf<String>(
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone._ID
).toTypedArray()
var from = listOf<String>(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER).toTypedArray()
var to = intArrayOf(android.R.id.text1, android.R.id.text2)
var rs = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, cols, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME) // sorts by display name
var adapter = SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, rs, from, to, 0)
listView.adapter = adapter
}
}
Я могу заполнить ListView, но он не отображает телефонные номера, когда я нажимаю на элемент