【发布时间】:2023-01-30 21:46:43
【问题描述】:
如何通过单击 recyclerview 项目从一项活动移动到另一项活动,并在意图中传递所单击项目的一些详细信息?
这就是我的适配器类的样子
var onItemClick : ((Contest)->Unit)?=null
private lateinit var mListener: onItemClickListener
interface onItemClickListener{
fun onItemClick(position: Int)
}
fun setOnItemClickListener(listener: onItemClickListener){
mListener = listener
}
inner class MyViewHolder(itemView:View,listener: onItemClickListener):RecyclerView.ViewHolder(itemView ){
val name: TextView = itemView.findViewById(R.id.card_title)
val time: TextView = itemView.findViewById(R.id.card_time)
val venue: TextView = itemView.findViewById(R.id.card_venue)
val team: TextView = itemView.findViewById(R.id.card_team_type)
val prize: TextView = itemView.findViewById(R.id.card_prize)
val entry: TextView = itemView.findViewById(R.id.card_entry_division)
val join_btn: Button = itemView.findViewById(R.id.card_join_btn)
init {
itemView.setOnClickListener{
onItemClick?.invoke(contestlist[adapterPosition])
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.contest_item,parent,false)
return MyViewHolder(itemView,mListener )
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val contests = contestlist[position]
holder.name.text = contestlist[position].name
holder.entry.text = contestlist[position].entry
holder.prize.text = contestlist[position].prize
holder.team.text = contestlist[position].team
holder.time.text = contestlist[position].time
holder.venue.text = contestlist[position].venue
holder.join_btn.text = contestlist[position].total_entry
}
【问题讨论】: