java - 如何在另一个类适配器中访问给定适配器的 onBindViewHolder 项?
问题描述
我想在下一个类 ChildViewHolder 中的 onBindViewHolder 中访问 DayOfWeek,以便我可以在 ChildRecyclerAdapter 中所示的 if 语句中使用它。
class ParentRecyclerAdapter(private var parentArrayList: ArrayList<String>?, private var context: Context, private var mTableFeed: TableFeedJava?
) : RecyclerView.Adapter<ParentRecyclerAdapter.ParentViewHolder>() {
override fun onBindViewHolder(holder: ParentViewHolder, position: Int) {
holder.DayOfWeek.text = this.parentArrayList!![position]
}
override fun getItemCount(): Int {
return parentArrayList!!.size
}
inner class ParentViewHolder (itemView: View) : RecyclerView.ViewHolder(itemView)
{
internal var DayOfWeek: TextView = itemView.findViewById(R.id.dayOfWeek)
internal var ChildRV: RecyclerView = itemView.findViewById(R.id.ChildRecycler)
}
这是 ChildRecyclerAdapter。我需要父母的 DayOfWeek 才能在此类中使用它
class ChildRecyclerAdapter(
private var time: ArrayList<String>,
var context: Context,
private val parentArrayList: ArrayList<String>? = null
) :
override fun onBindViewHolder(holder: ChildViewHolder, position: Int) {
holder.timeOfDay.text = time[position]
mTableFeed = TableFeedJava(context,mLectures)
holder.childofChildRV.adapter = mTableFeed
//THIS IS WHERE I PLAN ON USING THE IMPORTED 'DayOfWeek' AS SEEN ON 'holder.timeOfDay.text'
for (i in mTimeSpinner!!.indices){
if(holder.timeOfDay.text == mTimeSpinner!![i]){
holder.childofChildRV.visibility = View.VISIBLE
}else{
holder.childofChildRV.visibility = View.INVISIBLE
}
}
我知道代码在 Kotlin 中,但我也可以接受 Java 答案。
解决方案
你为什么不简单地传递一个对象
private var time: ArrayList<YourClass>
代替
private var time: ArrayList<String>
在我看来是最简单的解决方案
推荐阅读
- node.js - 如何在不同端口上构建具有多个功能区域的 React App?
- dll - nsis - 加载插件 dll
- angular - 错误 - 此命令只能在 CLI 项目内运行
- android - Android Wear:无法通过 wifi 或蓝牙连接手表
- android - Android studio 无法将 apk 安装到 Xiaomi Note5A (Redmi) 中(安装失败并显示 INSTALL_FAILED_USER_RESTRICTED 消息:)
- objective-c - Swift 4:将 Objective-c 转换为 Swift 时,非标称类型“T”不支持显式初始化
- jmeter - 如何使用后端侦听器将 jmeter 结果推送到多个数据库?
- php - 在 Woocommerce 的单个产品页面中添加产品备注字段
- macos - 在 macOS 上安装 VMware Player 时出现问题
- android - 如何使颤振应用程序响应?