java - 选择联系人时如何解决类型不匹配错误?
问题描述
在这条线上
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
}
}
}
}
解决方案
要么尝试删除?在你的uri之后:
val contactUri: Uri = data.data
代替
val contactUri: Uri? = data.data
或者,如果这不起作用,请查看此答案
推荐阅读
- javascript - 在 JavaScript 中定义一个类?
- javascript - 在打开页面时将值从 firebase 显示到页面
- javascript - 如何使用 jquery 处理第三部分 iframe 的点击事件?
- mysql - 在 Delphi 中找不到从 ZeosLib 连接到 MYSQL 的 libmysql.dll 和其他人
- python - 将数据保存/加载到/从 .CSV 文件的最佳方式
- css - 添加非拉丁字符时字体会发生变化
- c++ - 模板推演,这符合吗?
- react-native - 如何在 React Native 中播放 vimeo 视频?
- ios - Unity:Xcode 10.1 应用签名不适用于免费帐户
- ruby-on-rails - Heroku Rails 内存超出