RecyclerView项目单击并打开另一个recyclerview

问题描述 投票:0回答:1

在此处输入图片描述我有将近250项专利,我想在家长的recyclerview中显示。单击父回收站视图的项目后,它将在另一个回收站视图中的每个父项目下显示数百个数据。我怎么能像这张照片。

enter image description here

android android-recyclerview onclicklistener
1个回答
0
投票

我会这样做。创建一个界面:

interface AdapterContract{
  fun onListItemClick(id: String) //whatever the parameter is
}

Fragment1中实例化适配器时,可以实现此接口:

class Fragment1 : Fragment(), AdapterContract{
  ...
  //when instantiating the adapter:
  private val adapter: MyAdapter by lazy{
      MyAdapter(this //for the interface)
  }
  //override the method of Adapter contract
}

您的适配器构造函数应如下所示:MyAdapter(adapterContract: AdapterContract) : ListAdapter<MyAdapter.MyViewHolder>(Diff_Util_SOME_OBJECT)

比适配器ViewHolder:

itemHolder?.setOnClickListener{
 adapterContract.onListItemClick(someId)
}

现在在Fragment1中的覆盖方法中:

override method onListItemClick(id: String){
  //pass this id to the next opening fragment (like Bundles or navargs)
 //init `Fragment2` which is going to have all items, that belong to `Fragment1` selected item
}

加载数据:)

我希望您正在使用数据库之类的东西。也应该与硬编码数据结构一起使用,但为了安全起见:)。

© www.soinside.com 2019 - 2024. All rights reserved.