我开始使用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
我在做什么错了?
非常感谢您和问候。
答案 0 :(得分:0)
应该是这样的:
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,否则返回类型将是错误的