android - 在 Android 的 MainActivity 中实现 onItemClick 函数有什么意义?
问题描述
我发现人们为RecyclerView
的适配器创建了一个自定义的监听器接口(只有一个 onListItemClick 函数),然后onListItemClick
在类中实现监听器的函数MainActivity
。最终,将MainActivity
传递给适配器构造函数以将onListItemClick
用于其视图持有者。为什么我们应该在MainActivity
类中这样做,而不是在适配器或视图 hodler 类中这样做?可以在链接上找到一个示例:
https ://github.com/udacity/ud851-Exercises/compare/T03.07-Exercise-RecyclerViewClickHandling...T03.07-Solution-RecyclerViewClickHandling
解决方案
使用 a 时需要使用接口RecyclerView
,因为不像ListView
你不能简单地setOnItemClickListener()
直接使用 onRecyclerView
来操作单个列表项。
由于 的动态和“循环”性质RecyclerView
,必须将 anyonClickListener()
应用于ViewHolder
适配器内部的视图。
这意味着必须使用接口在活动和适配器之间进行通信。
推荐阅读
- python - 使用 pd.melt 时如何保留索引并合并为 Seaborn 和 matplotlib 创建 DataFrame
- asp.net-mvc - NLog 可扩展性 - 如何使用 ExtendValues 添加自定义字段?
- c# - 更改可写支持字段后,C# 中的只读属性永远不会更新
- labview - 使用 Labview 在字符串中替换 (., space, -, ) 的正则表达式是什么
- python - 最大对明智产品python
- r - 使用方差分析比较两个样本量不等的线性模型:错误
- haskell - 做符号和绑定签名
- python - 通过使用 NumPy 对 2 个数组元素数组进行求和来形成矩阵
- reactjs - 如何使用 react-select v2 渲染选定项目的数量
- powershell - Powershell:IE Web 表单 - 无法识别用于输入数据的输入框