Как определить, какой элемент массива отображается в imageView? - PullRequest
0 голосов
/ 11 ноября 2019

Я хочу произвольно установить ресурс в imageView и после этого проверить, какой элемент в массиве показан. Как это могло быть возможно? Я новичок.

var three = intArrayOf(R.drawable.na3,R.drawable.na4)
    image_view.setImageResource(three[random.nextInt(three.size)])
                if (three[1]){
                //Do stuff
                }

В "три [1]" я получаю ошибку:

Несоответствие типов. Требуется: Boolean Найдено: Int

Ответы [ 3 ]

0 голосов
/ 11 ноября 2019

У вас ошибка, потому что вы предоставляете значение int для 'if'. Вы должны предоставить только логическое значение.

Попробуйте

var three = intArrayOf(R.drawable.na3,R.drawable.na4)
    image_view.setImageResource(three[random.nextInt(three.size)])
                if (three.indexOf(getDrawableId(image_view))==1){
                //Do stuff
            }

2-й вариант try switch

0 голосов
/ 11 ноября 2019

Вы можете сделать так.

 val arrayList = listOf(R.drawable.ic_launcher_background1,R.drawable.ic_launcher_background2,R.drawable.ic_launcher_background3)
    val randomNumber = Random().nextInt(arrayList.size)

    imageView.setImageResource(arrayList[randomNumber])
    when (randomNumber){
        0-> println("Index is 0")
        1-> println("Index is 1")
        2-> println("Index is 2")
        else->
            println("Error")

}
0 голосов
/ 11 ноября 2019

Вы можете сначала сохранить randomIndex, а затем использовать этот элемент randomIndex, как показано ниже: do-

  val randomIndex=Random.nextInt(0, three.size)
    imageView.setImageResource(three[randomIndex])
    /* x is your compare int (ImageResource id) */
    if(three[randomIndex]==x){
        /*Do your stuff here */
    }
...