android - 使用 Kotlin 创建扩展函数以将资源分配给 ImageView
问题描述
我开始使用 Kotlin 有趣的扩展。我已经创建了一些对我来说可以正常工作的东西,但是我有一个 ImageView 上下文不起作用,我不明白为什么。
扩展功能是这样的:
fun ImageView.imageCardAssignation(imageSelected: Int): Int {
when(imageSelected){
0 -> R.drawable.card_amazon
1 -> R.drawable. card_card
2 -> R.drawable. card_house
}
return imageSelected
}
这个想法是,根据您作为参数传递的数字 (Int),将一个或另一个图像分配给 ImageView。
我调用它如下:
vb.selectImage.setImageResource (imageCardAssignation (0))
但是ID指示错误:
- none of the following candidates is applicable because os receiver type mismatch
我认为上下文必须是 ImageView
我究竟做错了什么?
非常感谢和问候。
解决方案
它应该是这样的:
fun ImageView.imageCardAssignation(imageSelected: Int): Int {
return when(imageSelected){
0 -> R.drawable.card_amazon
1 -> R.drawable.card_card
2 -> R.drawable.card_house
}
}
我假设“R.drawable.card_amazon”是一个 Int,否则返回类型将是错误的
推荐阅读
- android - Flutter 中的有效手势渲染
- jenkins - 在詹金斯脚本管道中找不到 mvn 命令
- python - 在大 txt 文件 pandas 中查找标题
- c# - 如何使用 Document DB 客户端查询 Cosmos DB
- node.js - 在 childprocess.exec 错误上执行函数
- reactjs - Create-React-App - 在不弹出的情况下转换代码的任何方式
- java - 奇怪的字符转换,需要帮助澄清
- react-native - 结合 React Navigation 3.0 和 JWT 根据身份验证状态确定 initialRouteName
- node.js - 无法使用 chai 上传文件
- javascript - 如何使用 NodeJS-JSON 在 post 方法上转义重音字符