如何在imageList

时间:2018-12-02 14:57:47

标签: android kotlin

我的一个片段中有ArrayList<ImageView>。该列表包含一些在一段时间内动画的图像。每当用户单击图像时,我都希望增加分数。我该如何实现?

ImageArray

private fun getArray() = arrayListOf(kennyPos0,kennyPos1,kennyPos2,kennyPos3,kennyPos4,
            kennyPos5,kennyPos6,kennyPos7,kennyPos8)

此功能对其进行动画处理。

    private fun manipulateImage() {

        runnable = Runnable {
            for (image in getArray()) {
                image.visibility = View.INVISIBLE
            }
            val randomNum = Random()
            val index = randomNum.nextInt(8-0)
            getArray()[index].visibility = View.VISIBLE
            handler.postDelayed(runnable,500)
        }
        handler.post(runnable)
    }

如何编写onClickListener?

    private fun incrementScore(v:View) {
            score++
            v.scoreText.text = "Score :$score"
        }

1 个答案:

答案 0 :(得分:0)

您可以随时迭代创建的数组并添加侦听器。即使您的代码并不十分清楚,也可以在设置项目最初不可见的地方进行操作。

for (image in getArray()) {
    image.apply {
        visibility = View.INVISIBLE
        setOnClickListener { 
            incrementScore(this)
        }
    }
}