【问题标题】:Kotlin: How to send data from RecyclerView adapter to a FragmentKotlin:如何将数据从 RecyclerView 适配器发送到片段
【发布时间】:2018-01-08 18:47:47
【问题描述】:

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

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

谢谢!

【问题讨论】:

  • 你尝试过使用回调接口吗?

标签: android kotlin kotlin-android-extensions


【解决方案1】:

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

class YourAdapter(val listener: (YourDataType) -> Unit)

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

holder.itemView.setOnClickListener { listener(data) }

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

    yourAdapter = YourAdapter {
        // invoked when user clicks on row
    }

【讨论】:

  • 如何访问 yourAdapter = YourAdapter { } 中的“数据”?
  • @kyk yourAdapter = YourAdapter(myDataArray) { doSomethingWith(it) }
  • @JohnO'Reilly 是否可以有多个 lambda,所以多个监听器,作为适配器参数?
猜你喜欢
  • 1970-01-01
  • 2018-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多