You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:RecyclerView未绑定适配器,无法展示用户列表

解决RecyclerView报错"No adapter attached; skipping layout"的问题

这个报错的核心是RecyclerView完成布局绘制时,还没有给它设置Adapter,或者Adapter的初始化/绑定时机太晚。结合你的代码,给你几个具体的解决步骤:

1. 提前初始化Adapter,避免布局时Adapter为空

在MainActivity的onCreate方法里,先初始化空的用户列表,直接创建Adapter并绑定到RecyclerView,不要等数据加载完成才设置Adapter:

// 在MainActivity的onCreate中
private lateinit var userList: ArrayList<Users>
private lateinit var usersAdapter: UsersAdapter
private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    // 1. 先初始化空列表和Adapter
    userList = ArrayList()
    usersAdapter = UsersAdapter(this, userList)
    // 2. 立即绑定Adapter到RecyclerView
    binding.recyclerView.adapter = usersAdapter
    // 别忘了设置LayoutManager,这也是常见的遗漏点
    binding.recyclerView.layoutManager = LinearLayoutManager(this)

    // 3. 之后再执行数据加载逻辑(比如从网络/数据库获取用户)
    loadUserList()
}

2. 给Adapter添加数据源更新方法

当前Adapter没有提供更新数据的接口,数据加载完成后无法通知RecyclerView刷新。修改Adapter,添加一个更新列表的函数:

class UsersAdapter(var context : Context,
                   var userList : ArrayList<Users>) : RecyclerView.Adapter<UsersAdapter.UsersViewHolder>() {

    // ... 原有代码保持不变 ...

    // 添加更新数据源的方法
    fun updateUserList(newUserList: ArrayList<Users>) {
        userList.clear()
        userList.addAll(newUserList)
        notifyDataSetChanged() // 通知列表刷新
    }
}

3. 数据加载完成后更新Adapter

当你从网络或数据库拿到用户数据后,调用Adapter的更新方法:

private fun loadUserList() {
    // 模拟数据加载(替换成你的实际数据获取逻辑)
    val fetchedUsers = arrayListOf(
        Users("1", "张三", "zhangsan@example.com"),
        Users("2", "李四", "lisi@example.com")
    )
    // 数据加载完成后更新Adapter
    usersAdapter.updateUserList(fetchedUsers)
}

额外注意点

  • 一定要给RecyclerView设置LayoutManager,否则即使Adapter设置了,列表也不会显示。
  • 如果使用异步加载数据(比如Retrofit、Firebase),确保在主线程调用notifyDataSetChanged(),因为UI操作必须在主线程执行。

内容的提问来源于stack exchange,提问作者xMaster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:05:23