我对这一切都很陌生,并且取得了很好的进展,但是我已经遇到了一堵墙,无法找到下一步该怎么做。我正在使用Kotlin,并且有一个带有相关Recyclerview适配器的片段。我想根据片段中的值(可以随时更改)对一行中的项目设置OnClick(开或关)。
我的适配器可以很好地显示和更新数据数组,还可以实现OnClick。
我尝试过通过构造函数发送一个数据元素,它在片段中改变了,但在适配器中总是显示为初始设置。
许多其他问题都涉及到这个问题,但只显示了代码片段,而且似乎我还不够先进,无法让它们在我的代码中成功工作。
有没有人可以提供一个指向Kotlin代码工作集的指针,包括从片段到适配器的变量解析--也许是在Git或教程中。我相信,如果我能学习一个工作程序,我就能向前迈进。谢谢。
1条答案
按热度按时间qzlgjiam1#
如果您在问题中包含您的适配器和片段代码会更好,这将有助于我们了解您是如何设置一切的,以及您传递给适配器的数据模型是什么。
但是看看你的问题,我想到的一个解决方案是在ViewHolder中显示的数据模型中添加一个
enabled
布尔值。使用这个布尔值,你可以设置view.clickable = model.enabled
。现在,每当“Fragment中的值”发生变化时,你可以更新这个列表,让适配器重新绑定项。请注意,上述解决方案是当您想要选择性地启用/禁用单个项目上的点击时使用的。如果您想要一次对所有项目执行此操作,最好在适配器中创建一个可以从Fragment中更改的变量,然后在clickListener中检查该适配器变量的值。如果为false,则从点击侦听器中返回。类似于:
如果这种方法没有帮助,我会要求你在你的问题中添加更多的上下文,并说明你到目前为止已经做了什么。