如何使用空侦听器在 kotlin 中的适配器上实现点击侦听器?

How to implement clicklistener on adapter on kotlin wiouth null listener?

我正在尝试在 recyclerview 适配器上实现一个侦听器。问题是其他时候我也这样做过,而且效果很好,但这次不行。 适配器是从弹出视图调用的,是吗?

这是调试显示适配器错误的地方class

override fun onCreateViewHolder(parent: ViewGroup, p1: Int): CarListItemViewHolder {
    //inflate view
    val v: View = LayoutInflater.from(parent.context).inflate(R.layout.adapter_car_list_item, parent, false)
    v.setOnClickListener(this)
    return CarListItemViewHolder(v, mListener as OnItemClickListener)
}

在 return 声明中说“mListener”为空

fun setOnItemClickListener(listener: OnItemClickListener) {
    mListener = listener
}

同样,我还有其他几个适配器,我以同样的方式使用它们。 任何关于查找内容的帮助或建议都很好。

问题是因为在父 class 上我没有实现 onclicklistener。一旦我这样做了,错误就消失了

carListItemAdapter!!.setOnItemClickListener( object: CarListItemAdapter.OnItemClickListener {
            override fun onClick(position: Int) {

        }

        override fun onItemClick(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
        }

    })

您需要将 ClickListener 添加到要设置适配器的适配器中 -

adapter.setOnClickListener(this)