android-fragments 如何评估来自RecyclerView适配器(Kotlin)的Fragment中的变量(改变值)以进行条件处理?

yqhsw0fo  于 2022-11-14  发布在  Android
关注(0)|答案(1)|浏览(155)

我对这一切都很陌生,并且取得了很好的进展,但是我已经遇到了一堵墙,无法找到下一步该怎么做。我正在使用Kotlin,并且有一个带有相关Recyclerview适配器的片段。我想根据片段中的值(可以随时更改)对一行中的项目设置OnClick(开或关)。
我的适配器可以很好地显示和更新数据数组,还可以实现OnClick。
我尝试过通过构造函数发送一个数据元素,它在片段中改变了,但在适配器中总是显示为初始设置。
许多其他问题都涉及到这个问题,但只显示了代码片段,而且似乎我还不够先进,无法让它们在我的代码中成功工作。
有没有人可以提供一个指向Kotlin代码工作集的指针,包括从片段到适配器的变量解析--也许是在Git或教程中。我相信,如果我能学习一个工作程序,我就能向前迈进。谢谢。

qzlgjiam

qzlgjiam1#

如果您在问题中包含您的适配器和片段代码会更好,这将有助于我们了解您是如何设置一切的,以及您传递给适配器的数据模型是什么。
但是看看你的问题,我想到的一个解决方案是在ViewHolder中显示的数据模型中添加一个enabled布尔值。使用这个布尔值,你可以设置view.clickable = model.enabled。现在,每当“Fragment中的值”发生变化时,你可以更新这个列表,让适配器重新绑定项。
请注意,上述解决方案是当您想要选择性地启用/禁用单个项目上的点击时使用的。如果您想要一次对所有项目执行此操作,最好在适配器中创建一个可以从Fragment中更改的变量,然后在clickListener中检查该适配器变量的值。如果为false,则从点击侦听器中返回。类似于:

view.setOnClickListener {
    if(adapterValue) {
        // handle Click
    }
}

如果这种方法没有帮助,我会要求你在你的问题中添加更多的上下文,并说明你到目前为止已经做了什么。

相关问题