Как написать Обработчик нажатия в RecyclerView-по нажатию переход на Activity?

Всем доброго времени суток! Я вывожу список RecyclerView ,мне нужно чтобы по нажатию на itemView открывалось Activity Помогите пожалуйста с кодом ,я не знаю как это написать ,некоторые говорят через интерфейс Андроид Котлин

class MyAdapter (listArray:ArrayList<Class1>,context: Context): RecyclerView.Adapter<MyAdapter.ViewHolder>() {

    var listArrayR = listArray
    var contextR = context

    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {



        val textView2=view.findViewById<TextView>(R.id.textView2)



        fun bind (class1: Class1,context: Context)
        {
            textView2.text=class1.titleText

            itemView.setOnClickListener(){
здеcь я выводил сообщение Toast
            }
        }
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val inflater = LayoutInflater.from((contextR))
        return ViewHolder(inflater.inflate(R.layout.oglavlenie,parent,false))

    }


    override fun getItemCount(): Int {
        return listArrayR.size
    }


    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        var listitem=listArrayR.get(position)
        holder.bind(listitem,contextR)
    }
    public interface OnNoteListener{
        fun onNoteClick( position: Int) {

        }
    }
}

Ответы (1 шт):

Автор решения: ЮрийСПб

Примерно так:

class MyAdapter (listArray:ArrayList<Class1>, clickListener: (Int) -> Unit): RecyclerView.Adapter<MyAdapter.ViewHolder>() {

    var listArrayR = listArray

    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {

        val textView2=view.findViewById<TextView>(R.id.textView2)

        fun bind (class1: Class1) {
            textView2.text=class1.titleText

            itemView.setOnClickListener() { clickListener(position) }
        }
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val inflater = LayoutInflater.from(parent.context)
        return ViewHolder(inflater.inflate(R.layout.oglavlenie,parent,false))

    }

    override fun getItemCount(): Int {
        return listArrayR.size
    }


    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        var listitem=listArrayR.get(position)
        holder.bind(listitem)
    }
}

Теперь там, где вы создаёте адаптер через конструктор напишите так:

val adapter = MyAdapter(data) { context.startActivity(Intent(context, ACTIVITY_CLASS_NAME_TO_LAUNCH::class.java)) }
→ Ссылка