android - 如何将数据从 1 个视图持有者传递到其他视图持有者
问题描述
我有一个recycler view
包含 2 view holders
。
一个用于标题,一个用于其他项目。
第二个视图持有者在每一行都有复选框。当用户点击复选框时,我想更新一个计数器header's view holder.
我尝试HeaderViewHolder
从调用,但它与消息ListViewHolder
崩溃。cannot be cast to
有什么办法可以将数据从 1 个视图持有者传递给其他人。
解决方案
- 您可以
HeaderViewHolder
在 Adapter 中保存实例和计数器。
private HeaderViewHolder headerHolder;
private int counter = 0;
- 初始化
headerHolder
内部onBindViewHolder
方法并设置OnClickListener
复选框。
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if (holder instanceof HeaderViewHolder) {
headerHolder = (HeaderViewHolder) holder;
}
if (holder instanceof ListViewHolder) {
// set listener and don't forget to call "counter++"
// and "headerHolder.setTitle("title you want")" inside it
}
}
推荐阅读
- android - 如何等待 Fragment Transaction 直到创建 Fragment View
- regex - 用另一个文本块替换文本块
- bash - 从一行中获取一个特定的数字并附加它
- sql - 随机 10% 的 SQL 查询,最少 20 行
- python - 在循环中连接数组的问题
- node.js - 如何在 Node Restify 应用程序中自动导入所有控制器
- unicode - 在 Dart 中处理字素簇
- r - ifelse中如何处理NA?
- c# - 在 C++/CLI 中设置一个 C++ 回调,该回调需要一个虚函数覆盖
- python - SQLAlchemy 警告文本列表达式应该显式声明?