Skip to content

Instantly share code, notes, and snippets.

@Levi-Moreira
Last active February 13, 2019 12:59
Show Gist options
  • Save Levi-Moreira/e898888b18951841dc30e7b13a5f59c0 to your computer and use it in GitHub Desktop.
Save Levi-Moreira/e898888b18951841dc30e7b13a5f59c0 to your computer and use it in GitHub Desktop.
class UsersAdapter : PagedListAdapter<User, UsersAdapter.UsersViewHolder>(
UsersDiffCallback()
) {
lateinit var clickListener: (User) -> (Unit)
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): UsersViewHolder = UsersViewHolder(
parent.inflate(R.layout.user_list_item)
)
override fun onBindViewHolder(holder: UsersViewHolder, position: Int) {
val user: User? = getItem(position)
user?.let {
holder.bind(user, this.clickListener)
}
}
inner class UsersViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(item: User, listener: (User) -> Unit) = with(itemView) {
displayName.text = item.displayName
userId.text = item.userId.toString()
location.text = item.location
userImage.glideUrl(item.profileImage.toString())
setOnClickListener { listener(item) }
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment