RecyclerView lateinit 属性 mClickListener 尚未初始化

RecyclerView lateinit property mClickListener has not been initialized

我找到了有关如何将 onClickListener 实现为 RecyclerView 的教程,但后来我找不到代码为何不起作用的原因。日志显示 lateinit 属性 尚未初始化。我不确定为什么这么说。我将如何解决这个问题?

这是 MainActivity 中的部分代码:

 viewManager = LinearLayoutManager(this)
        val list = ArrayList<test>()
        recyclerView = findViewById<RecyclerView>(R.id.recyclerview).apply {
            setHasFixedSize(true)
            layoutManager = viewManager
            adapter = ListAdapter(list)
        }
        ListAdapter(list).setOnItemClickListener(object : ListAdapter.ClickListener {
            override fun onClick(pos: Int, aView: View) {
                Toast.makeText(applicationContext,"It works :)",Toast.LENGTH_SHORT).show()
            }
        })

这是因为您在不同的实例上设置监听器。你应该这样做:

recyclerView = ....apply {
    ...
    adapter = ListAdapter(list).apply {
        setOnItemClickListener(...)
    }
}

另一种可能性是创建本地 val listAdapter,实例化它并设置侦听器,最后,在 RV 的 apply 块中,设置 adapter = listAdapter