Это адаптер:
class ToplistAdapter(val context: Context, private val users: MutableList<Toplist>, val itemClick: (Toplist) -> Unit) : RecyclerView.Adapter<ToplistAdapter.ViewHolder>(){
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val user = users[position]
holder.percent.text = user.prozent
Picasso.get().load(user.image).into(holder.imagee)
holder.bind(users[position], context)
}
override fun getItemCount() = users.size
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.toplist, parent, false)
return ViewHolder(view, itemClick)
}
class ViewHolder(itemView: View?, val itemClick: (Toplist) -> Unit) : RecyclerView.ViewHolder(itemView!!){
val percent = itemView!!.text_percent
val imagee = itemView!!.image_view
fun bind(toplist: Toplist, context: Context){
itemView.setOnClickListener {
itemClick(toplist)
}
}
}
}
И это во фрагменте:
adapter = ToplistAdapter(activity!!, users) {
// Profile(it.userid.toString())
}
recyclerView.adapter = adapter
recyclerView.layoutManager = GridLayoutManager(activity!!, 2)
recyclerView.setHasFixedSize(true)
Я знаю, как установить onClicklistener внутри onBindViewHolder
, и выяснить, нажали ли text_percent
или image_view
, но как я могу сделать это во фрагменте помимо получения userid
и т. Д.
Заранее спасибо
EDIT:
Запрошенный класс модели данных:
data class Toplist(
val image: String,
val prozent: String,
val userid: Long
)