How to add a Onclick listener on a RecyclerView in Android Studio with Kotlin?

强颜欢笑 提交于 2019-12-06 08:20:57
Lukas
  1. Let's define an interface for this use-case:

    interface WorkoutClickLisetner{
       fun onWorkoutClicked(workout: workout)
    }
    
  2. Add WorkoutClickListener as member of CustomAdapter

    var listener : WorkoutClickListener? = null
    

    register click listener for itemViewinside your bindItems method

    itemView.listener = object : View.OnClickListener {
    
      override fun onClick(v: View){
        listener?.onWorkoutClicked(workout)
      }
    }
    
  3. Do not forget to init your WorkoutClickListener where you will delegate action when user clicks the cell:

    val adapter = CustomAdapter(workouts)
    
    adapter.listener = object : WorkoutClickListener { 
        override fun onWorkoutClicked(workout: workout){  
       /*your delegation goes here*/`
     }
    }
    
    recyclerView.adapter = adapter
    

use it inside viewHolder

  override fun onClick(view: View) {

    }

if you have specific id's

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

            R.id.id1 -> {}
            R.id.id2 -> {}
            else ->{}
       }
}

Alright guys I found out how to implement a onclicklistener in Kotlin, here is the link: https://gist.github.com/nesquena/231e356f372f214c4fe6

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!