android - 无法初始化 RecyclerView:空对象引用
问题描述
设置我RecyclerView
的layoutManager
和adpater
时,我收到此错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setLayoutManager(androidx.recyclerview.widget.RecyclerView$LayoutManager)' on a null object reference
这是我的自定义片段RecyclerView.Adapter
。我想RecyclerView
在它不可滚动的地方放置一个嵌套,并且大小取决于它里面的元素。上下文是在创建 ViewHolder 时设置的,我需要将它传递给我的内部 RecyclerView。
//...
private lateinit var context: Context
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): ViewHolder {
context = parent.context
val view = LayoutInflater.from(context)
.inflate(R.layout.date_card, parent, false)
return ViewHolder(view)
}
override fun getItemCount() = data.size
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val dateItem = data[position]
with(holder.itemView) {
tv_day.text = dateItem.getDayOfMonth()
tv_day2.text = dateItem.getDayName(resources)
rv_overview.apply {
layoutManager = LinearLayoutManager(this@DateAdapter.context)
adapter = PlanAdapter(dateItem.planItems)
setHasFixedSize(false)
}
}
}
有什么我想念的吗?
解决方案
没关系,我修好了!原来嵌套的 recyclerview 没有 id。一旦我设置了 id 并引用了它,代码就可以工作了。
推荐阅读
- javascript - Webpack 入口点语法混乱
- angular - Angular 将字符串发布到 asp.net 后端
- java - XSLT concat 计数器与字段名称,使其动态
- floating-point - 位数除以指数和尾数
- airflow - 尝试从本地 Airflow 运行 DataProcSparkOperator 任务时出现 HttpError 400
- command - 在 nightwatch.js 中调用自定义命令
- javascript - 如何在 Web 模拟 XAMPP 中使用 AJAX
- safari - 如何使用 workbox-webpack-plugin 在 Safari 中缓存 .mp4 文件?
- reactjs - 尝试在生产环境中获取环境变量在 React 中未定义
- javascript - React-Select:defaultValue 属性中的多个值