Kotlin-Recycleview ViewHolder OnClick无法正常工作

时间:2018-07-11 03:50:42

标签: android android-recyclerview kotlin onclicklistener

我在Kotlin中有一个应用程序是由另一个开发人员完成的。它在RecycleView Adapter的“ onBindViewHolder”方法中设置Onclick侦听器。视图以某种方式滚动到可见区域之外(即用户向下滚动)并且用户滚动回到顶部后,仅在两次单击视图后才调用onclick方法。不了解发生了什么,而我对Kotlin的了解很少。这是设置onclick侦听器的方式:

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
//...
    holder.itemView.editButton.onClick {
                Log.d("Holder", "Click")

    }
//...

}

当视图离开屏幕时,它可以正常工作。另外,不要求onBindViewholder仅用于从屏幕外部返回的视图,我认为这不是标准的吗?

对于recycleview也没有特殊的设置,只是简单的线性布局和单一视图类型。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试此代码。

holder.itemView.editButton.setOnClickListener(object : View.OnClickListener {
            override fun onClick(v: View?) {
               Log.d("Holder", "Click")
            }
        })

答案 1 :(得分:0)

确保您将Edittext的值与ViewHolder类绑定,如下所示:

class ViewHolder (view: View) : RecyclerView.ViewHolder(view) {
    // Holds the button that will add each editButton to
    val editButton = view.editButton
}

尝试以下简单代码

    holder?.editButton.setOnClickListener {
        Log.e("editbutton", "onClick")
    }