我正在处理一个在RecyclerView
上查看的动态列表。到目前为止,可以添加和删除元素。用户还可以通过几个popUpWindows更改每个元素的内容。但是,MyViewHolder
类由于很多onClickListener
而变得很长。因此,我将MyRecyclerViewAdapter
类与其他活动分开放在一个单独的文件中。现在,
将MyViewHolder
类长时间保留在许多单击侦听器中是一种好习惯(在Adapter对象中完成大部分工作),还是应该从MyRecyclerViewAdapter
中检索相关数据并以某种方式在onCreate
部分中执行“删除,添加,编辑文本”功能?
删除所有元素后,显示全新视图的最有效,最简单,最快速的解决方案是什么?我尝试了VISIBLE,GONE解决方案,但MyAdapter位于单独的文件中,并且我不知道如何与onCreate节通信以传输动态列表的实时大小。
答案 0 :(得分:0)
1 /如果您的操作是关于与项目组件进行交互(添加,删除,编辑,获取内容...),则应将函数放在适配器中,单击ViewHolder应该仅给出其在适配器中的位置。这里的解决方案:RecyclerView itemClickListener in Kotlin
2 /为什么使用VISIBLE,GONE?当您删除一个项目意味着删除数据列表中的项目时,只需在此之后重新加载视图,适配器就会自动显示剩余数据
答案 1 :(得分:0)
答案:
问题1:Kiet Phan建议在onBindViewHolder
函数中包含逻辑部分,这很有帮助。
问题2:如果您已经将当前上下文传递给了单独类的主构造函数(在另一个文件中定义),则在Kotlin中,可以通过代码段到达currentActivity的内容:{{1 }}。
所以适配器的解决方案和一般结构如下:
(context as Activity)
在此窗口中编写代码并不容易。当我按Tab键时,浏览器会退出编辑屏幕并选择该网页的另一部分。所以代码看起来像这样。也许复制/粘贴会更好。
欢迎对空列表情况进行改进和更有效的解决方案。谢谢。