【问题标题】:How do you fix type mismatch error when picking contacts?选择联系人时如何解决类型不匹配错误?
【发布时间】:2020-01-23 13:55:22
【问题描述】:

在这一行

val contactUri: Uri? = data.data
…
val cursor = requireActivity().contentResolver
    .query(**contactUri**, queryFields, null, null, null)

类型不匹配需要 Uri got Uri

你如何解决这个问题?

代码示例

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    when {
        resultCode != Activity.RESULT_OK -> return

        requestCode == REQUEST_CONTACT && data != null -> {
            val contactUri: Uri? = data.data
            // Specify which fields query to return values for.
            val queryFields = arrayOf(ContactsContract.Contacts.DISPLAY_NAME)
            // Perform query
            val cursor = requireActivity().contentResolver
                .query(contactUri, queryFields, null, null, null)
            cursor?.use {
                // Double-check that you actually got results
                if (it.count == 0) {
                    return
                }

                // Pull out the first column of the first row of data
                it.moveToFirst()
                val suspect = it.getString(0)
                crime.suspect = suspect
                crimeDetailViewModel.saveCrime(crime)
                suspectButton.text = suspect
            }
        }
    }
}

【问题讨论】:

    标签: java kotlin


    【解决方案1】:

    要么尝试删除?在你的 uri 之后:

    val contactUri: Uri = data.data
    

    而不是

    val contactUri: Uri? = data.data
    

    或者如果这不起作用,check this answer out

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 2016-11-14
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多