首页 > 解决方案 > Android - 在 for 循环中创建多个 onClickListeners (Kotlin)

问题描述

我正在尝试为大量按钮实例化大量(~600)onclick 侦听器。我创建了一个函数,将每个正方形的 id 存储在一个名为 squareList 的列表中,其中每个正方形都分配有一个字符串值 id (sq000, sq001, sq002)

我想创建一个 for 循环来提取每个正方形的 id,然后创建一个 onClicklistener,有点像:

fun createSquareListeners(listOfSquares: MutableList<String>)
{
    for(square in listOfSquares)
    {
       square.setOnClickListener{ //Do Something}
    }
}

我想到的另一种实现方式是编写一个 onClick 函数,并将其附加到 xml 文件中的每个按钮,但我不太确定有什么可能,因为我对 Kotlin/Java 还很陌生

标签: androidkotlin

解决方案


为什么不在整个网格布局上设置一个项目监听器,然后在里面设置一个监听器

gridView.setOnItemClickListener(object:OnItemClickListener() {
   fun onItemClick(parent:AdapterView<*>, v:View,
              position:Int, id:Long) {
      // DO something
   }
})

这样,您就不需要在网格视图中拥有所有内容的 id,然后您可以根据位置更改您要去的位置:Int 在网格视图内单击,或者我不明白您要做什么?


推荐阅读