所以我想在 Android 中为我的 RecyclerView
设置一个 onclicklistener
,但我不确定该怎么做。
我的 Workoutlist
有一个 CustomAdapterClass
,如下所示:
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
}
}
}
然后我像这样推进我的锻炼(在我的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
我想让我的锻炼可以点击,这样我就可以使用锻炼中的名称和描述来打开一个新的 Activity ,并将它们作为 Intent 。
感谢任何帮助!
我不明白他把那个扩展名放在“副本”中的什么地方
最佳答案
让我们为这个用例定义一个接口(interface):
interface WorkoutClickLisetner{ fun onWorkoutClicked(workout: workout) }
添加
WorkoutClickListener
作为CustomAdapter
的成员var listener : WorkoutClickListener? = null
为
itemView
注册点击监听器在你的里面bindItems
方法itemView.listener = object : View.OnClickListener { override fun onClick(v: View){ listener?.onWorkoutClicked(workout) } }
不要忘记初始化你的
WorkoutClickListener
当用户单击单元格时,您将在其中委托(delegate)操作:val adapter = CustomAdapter(workouts) adapter.listener = object : WorkoutClickListener { override fun onWorkoutClicked(workout: workout){ /*your delegation goes here*/` } } recyclerView.adapter = adapter
关于android - 如何使用 Kotlin 在 Android Studio 中的 RecyclerView 上添加 Onclick 监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47377929/