¿Cómo agregar un oyente Onclick en un RecyclerView en Android Studio con Kotlin?

así que quiero tener un onclicklistener para mi RecyclerView en Android, pero no estoy seguro de cómo debería hacerlo.

Tengo una CustomAdapterClass para mi Workoutlist que se ve así:

 class CustomAdapter(val workoutList: ArrayList<workout>) : RecyclerView.Adapter<CustomAdapter.ViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomAdapter.ViewHolder { val v = LayoutInflater.from(parent.context).inflate(R.layout.list_layout, parent, false) return ViewHolder(v) } override fun onBindViewHolder(holder: CustomAdapter.ViewHolder, position: Int) { holder.bindItems(workoutList[position]) } override fun getItemCount(): Int { return workoutList.size } class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { fun bindItems(workout: workout) { val cardDate = itemView.findViewById<TextView>(R.id.cardDate) val cardDescription = itemView.findViewById<TextView>(R.id.cardDescription) cardDate.text = workout.date cardDescription.text = workout.description } } } 

Y empujo mis entrenamientos de esta manera (en mi Main Activity ):

  val recyclerView = findViewById<RecyclerView>(R.id.RecyclerView) recyclerView.layoutManager = GridLayoutManager(this, 3) val workouts = ArrayList<workout>() workouts.add(workout("12.09.2018", "Kniebeugen und Bizeps + Rücken")) workouts.add(workout("12.09.2018", "Kniebeugen und Bizeps + Rücken")) workouts.add(workout("12.09.2018", "Kniebeugen und Bizeps + Rücken")) workouts.add(workout("12.09.2018", "Kniebeugen und Bizeps + Rücken")) workouts.add(workout("12.09.2018", "Kniebeugen und Bizeps + Rücken")) workouts.add(workout("12.09.2018", "Kniebeugen und Bizeps + Rücken")) workouts.add(workout("12.09.2018", "Kniebeugen und Bizeps + Rücken")) workouts.add(workout("12.09.2018", "Kniebeugen und Bizeps + Rücken")) val adapter = CustomAdapter(workouts) recyclerView.adapter = adapter 

Me gustaría hacer clic en mis entrenamientos para poder usar el nombre y la descripción del entrenamiento para abrir una nueva actividad con ellos como la intención.

¡Cualquier ayuda es apreciada!

No entiendo dónde puso esa extensión en el "duplicado"

utilízalo dentro de viewHolder

  override fun onClick(view: View) { } 

si tiene una identificación específica

 @OnClick(R.id.id1, R.id.id2) fun onClick(view: View) { when (view.id) { R.id.id1 -> {} R.id.id2 -> {} else ->{} } } 

Bien chicos, descubrí cómo implementar un onclicklistener en Kotlin, aquí está el enlace: https://gist.github.com/nesquena/231e356f372f214c4fe6

  1. Definamos una interfaz para este caso de uso:

     interface WorkoutClickLisetner{ fun onWorkoutClicked(workout: workout) } 
  2. Agregar WorkoutClickListener como miembro de CustomAdapter

     var listener : WorkoutClickListener? = null 

    registrarse click oyente para itemView dentro de su método bindItems

     itemView.listener = object : View.OnClickListener { override fun onClick(v: View){ listener?.onWorkoutClicked(workout) } } 
  3. No olvide WorkoutClickListener su WorkoutClickListener donde delegará la acción cuando el usuario click la celda:

     val adapter = CustomAdapter(workouts) adapter.listener = object : WorkoutClickListener { override fun onWorkoutClicked(workout: workout){ /*your delegation goes here*/` } } recyclerView.adapter = adapter 
  • RecyclerView: implementa correctamente la eliminación de SnackBar UNDO (Kotlin)
  • Cómo implementar un reciclador de carga perezosa. Adaptador de vista como el reciclador de reino. Ver el adaptador usando kotlin.
  • Desadaptación del tipo de Kotlin: ¡tipo inferido es Ver! pero se esperaba TextView
  • Selecciones no deseadas en RecyclerView
  • Android solo estableceStackFromEnd solo si RecycleView / List es más grande que la pantalla
  • Cómo restablecer el contenido de la vista de reciclador en la actividad de llamadas usando Kotlin
  • La image no se muestra en Recyclerview usando Glide
  • Color de background e image arrastrando en Scroll en recyclerView Android usando Group Adaptor
  • kotlin RecyclerViewAdapter IndexOutOfBoundException
  • Kotlin: esperando la statement de un miembro
  • RecyclerView itemClickListener en Kotlin