Сначала настройте прослушиватель щелчков:
Установите прослушиватель щелчков на объекте ViewHolder
.
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AracMarkaViewHolder {
var inflater = LayoutInflater.from(parent.context)
var arackategori = inflater.inflate(R.layout.arac_kategori, parent, false)
return AracMarkaViewHolder(arackategori).also {
arackategori.setOnClickListener { clickHandler.forwardClick(it) }
}
}
Мы настраиваем слушателя, где мы вызываем функцию forwardClick(holder: AracMarkaViewHolder)
.Мы передаем текущую завышенную ссылку на держатель представления, чтобы мы могли выполнять с ней любые будущие операции.
Теперь настроим интерфейс:
Мы создаем интерфейс, потому что мы хотим, чтобы любое событие щелчка былоуправляется деятельностью.Эти события, в вашем случае включают запуск нового фрагмента.
interface ClickEventHandler {
fun forwardClick(holder: AracMarkaViewHolder)
}
Теперь в вашем адаптере настройте интерфейс следующим образом:
private val clickHandler: ClickEventHandler = context as ClickEventHandler
Изменить подпись класса адаптера:
Теперь нам нужно немного изменить конструктор адаптера.
var MyAdapter = AracMarkaAdapter(araclarKategori, requireContext()) //We pass the activity's context.
И ваша подпись класса адаптера должна выглядеть примерно так:
class AracMarkaAdapter(tumKategori: ArrayList<AracMarka>, context: Context) :
RecyclerView.Adapter<AracMarkaAdapter.AracMarkaViewHolder>() {
private val clickHandler: ClickEventHandler = context as ClickEventHandler
}
Реализация интерфейса:
Теперь мы реализуем интерфейсв деятельности.
class MainActivity : AppCompatActivity(), ClickEventHandler {
override fun forwardClick(holder: AracMarkaViewHolder) {
//Launch a new fragment here.
}
}