Создайте функцию расширения для назначения ресурса ImageView с помощью Kotlin - PullRequest
0 голосов
/ 30 апреля 2020

Я начинаю работать с 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))

Но идентификатор указывает на ошибку:

- none of the following candidates is applicable because os receiver type mismatch

Я думаю, что контекст должен быть ImageView

Что я делаю не так?

Большое спасибо и привет .

1 Ответ

0 голосов
/ 30 апреля 2020

должно быть что-то вроде этого:

    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, иначе тип возвращаемого значения будет неправильным

...