如何检测 imageView 中显示的是数组的哪个元素?

How to detect which element of array is shown in imageView?

我想在 imageView 中随机设置资源,然后检查显示数组中的哪个元素。怎么可能?我是初学者。

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

在 "three[1]" 中出现错误:

Type mismatch. Required: Boolean Found: Int

您可以先保存 randomIndex,然后使用此 randomIndex 的项目,如下代码所示-

  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 */
    }

您有错误,因为您正在向 'if' 提供 int 值。您应该只提供布尔值。

尝试

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
            }

第二个选项 尝试切换

你可以这样做。

 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")

}