当从FireBaseRecyclerAdapter中点击一个项目时,我想打开一个新的Fragment
PersonAdapter.kt:
override fun onBindViewHolder(
holder: personsViewholder,
position: Int, model: Exercise
) {
holder.title.text = model.title
holder.description.text = model.description
}
此刻我可以用数据填充回收视图,但我怎么能把这些数据传递给一个新的片段,例如PersonDetailFragment?
What I tried
var activity: AppCompatActivity = it.context as AppCompatActivity
activity.supportFragmentManager.beginTransaction()
.replace(R.id.chat_profile_dimmer, ExercisesFragment(model.title, model.description)).addToBackStack(null).commit()
我已经尝试了几种方法,但似乎都不起作用。
您可以通过使用回调来做到这一点。按照以下步骤操作:
-
在适配器构造函数中进行回调。
class YourAdapter(private val callback: (DataTypeToBeSent) -> Unit): ...
-
In
onBindViewHolder
:holder.view.setOnClickListener {
callback.invoke(model)
}
有了这个,你将在视图(Activity/Fragment)中获得适配器被调用的数据,每次在RecyclerView中单击按钮/视图。
然后从那个视图(Activity/Fragment),你就可以开始这个片段了。