代码之家  ›  专栏  ›  技术社区  ›  FlatDog

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

  •  3
  • FlatDog  · 技术社区  · 6 年前

    我对Android和Kotlin都是新手(来自iOS Swift development)。我有一个活动有一个片段,片段内是一个RecyclerView。当用户点击RecyclerView中的一行时,我想显示一个对话框并采取一些措施。

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

    谢谢

    1 回复  |  直到 6 年前
        1
  •  6
  •   John O'Reilly    6 年前

    让适配器将lambda作为参数。。。例如

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

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

    holder.itemView.setOnClickListener { listener(data) }
    

    在你的片段中,你会有如下内容:

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