创建扩展功能以使用Kotlin将资源分配给ImageView

时间:2020-04-30 18:12:55

标签: android kotlin imageview extension-function

我开始使用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

我在做什么错了?

非常感谢您和问候。

1 个答案:

答案 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,否则返回类型将是错误的