Простой способ сделать это (хотя вы, вероятно, должны общаться через viewModel, что выходит за рамки этого вопроса):
Сначала подключите прослушиватель к адаптеру
class FakeAdapter(private val items: List<String>, private val startFragmentCallback: () -> Unit) :
RecyclerView.Adapter<FakeViewHolder>() {
Затем в onBindViewHolder:
override fun onBindViewHolder(holder: FakeViewHolder, position: Int) {
holder.itemView.setOnClickListener { // in your case this might be holder.commenting - but i don't know what 'commenting' is
startFragmentCallback.invoke()
}
}
Затем в Activity есть приватная функция для создания фрагмента:
private fun startFragmentCallback() {
// code to start fragment goes here
}
И затем используйте эту функцию при создании адаптера в активности:
val listOfStrings = listOf("1", "2", "3")
val adapter = FakeAdapter(listOfStrings, this::startFragmentCallback)