Kotlin:如何将数据从 RecyclerView 适配器发送到 Fragment

Fla*_*Dog 3 android kotlin kotlin-android-extensions

我是 Android 新手和 Kotlin 新手(来自 iOS Swift 开发)。我有一个带有片段的活动,片段内部是一个 RecyclerView。当用户点击 RecyclerView 中的一行时,我想显示一个对话框并执行一些操作。

在适配器中,我有 CustomViewHolder 和 onClickListener。从那里我可以轻松捕获用户点击的行。但是如何将此信息传递回片段以便我可以采取行动/显示对话框?

谢谢!

Joh*_*lly 6

让您的适配器将 lambda 作为参数...例如

class YourAdapter(val listener: (YourDataType) -> Unit)
Run Code Online (Sandbox Code Playgroud)

在您的视图持有者中,当用户单击行时,您将调用该侦听器。

holder.itemView.setOnClickListener { listener(data) }
Run Code Online (Sandbox Code Playgroud)

在你的片段中,你会有类似的东西:

    yourAdapter = YourAdapter {
        // invoked when user clicks on row
    }
Run Code Online (Sandbox Code Playgroud)