如何使用Kotlin中的适配器将JSON数据显示到RecyclerView中



我已经成功地从Reddit API中提取JSON,但我无法将其放入我的RecyclerView中。我设置了一个日志来检查我的JSON是空的还是空的,并且日志成功地打印了所需的输出,这意味着我的JSON不是空的,并包含了必要的数据。

这是我的PostRowAdapter.kt

class PostRowAdapter(private val viewModel: MainViewModel)
: ListAdapter<RedditPost, PostRowAdapter.VH>(RedditDiff()) {
private var awwRow = listOf<RedditPost>()           
override fun onBindViewHolder(holder: VH, position: Int) {
val binding = holder.binding
awwRow[position].let{
binding.title.text = it.title
}
}
override fun getItemCount() = awwRow.size
}

我认为我的代码是正确的,但当我运行应用程序时,RecyclerView仍然是空白的。我哪里错了?

您的PostRowAdapter正在填充awwRow列表,该列表在启动时为空且从未更新,因此该RecyclerView将始终包含0个元素

如果您使用的是ListAdaptersubmitList(...)方法,那么您不应该覆盖getItemCount,也不应该有自己的数据列表,所以删除这些行

private var awwRow = listOf<RedditPost>() // on top
override fun getItemCount() = awwRow.size // on bottom

如果您想使用submitList()方法访问整个列表集,那么您可以调用适配器内部的getCurrentList()。如果您在位置(如onBindViewHolder中(需要特定项目,则使用getItem(position)。所以不是

awwRow[position].let{

你应该有

getItem(position).let{

相关内容

  • 没有找到相关文章

最新更新