GridView仅在单击项目时删除第一个项目。 Java的>科特林

时间:2017-07-18 19:04:12

标签: android kotlin android-gridview

我有一个填充了TextViews的GridView。我希望这样当用户单击TextView时,从GridView中删除TextView,并从ArrayList中删除该TextView中显示的String。这最初是用Java编写的,但是当转换为Kotlin时它停止工作,现在只删除第一个项目,无论点击哪个项目。

这是Kotlin代码:

grid_view!!.onItemClickListener = AdapterView.OnItemClickListener { _, _, _, _ ->
    val selectedItem = (tag_name as TextView).text.toString()
    itemList.indices.forEach {
        Log.d("Update", "Removing: " + selectedItem)
        itemList.removeAll { it == selectedItem }
    }
}

1 个答案:

答案 0 :(得分:1)

我想我已经回答了你上一个问题。如果您不知道该怎么做,我仍然很乐意帮助您解决问题。首先,我不是Android开发人员,但我认为您需要从OnItemClickListener获取position并且不需要for循环执行此类操作,例如:

grid_view!!.onItemClickListener = AdapterView.OnItemClickListener { _, _, pos, _ ->
    itemList.remove(pos)
    //by convention in android you should operate view on an adapter rather than UI
    //                     v
    your_grid_view_adapter.run{
       remove(pos)
       notifyDataSetChanged()
    }
}