我发现人们为RecyclerView
的适配器创建了一个自定义的侦听器接口(只有一个onListItemClick函数),然后在onListItemClick
类中实现了监听器的MainActivity
函数。最终,MainActivity
被传递给适配器构造函数,以便将onListItemClick
用于其视图持有者。我们为什么要在MainActivity
类中执行此操作而不是在适配器或视图hodler类中执行此操作?
可以在链接上找到此示例:
https://github.com/udacity/ud851-Exercises/compare/T03.07-Exercise-RecyclerViewClickHandling...T03.07-Solution-RecyclerViewClickHandling
答案 0 :(得分:1)
使用RecyclerView
时需要使用界面,因为与ListView
不同,您不能直接在setOnItemClickListener()
上使用RecyclerView
来操作单个列表项。
由于动态和"回收" RecyclerView
的性质,任何onClickListener()
都必须应用于适配器内ViewHolder
的视图。
这意味着必须使用接口在活动和适配器之间进行通信。