Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. class SortedListSampleAdapter : RecyclerView.Adapter<SortedListSampleAdapter.UserViewHolder>() {
  2.  
  3. private val userSortedList: SortedList<User>
  4.  
  5. init {
  6. userSortedList = SortedList(User::class.java, object : SortedListAdapterCallback<User>(this) {
  7. override fun compare(o1: User, o2: User): Int = o1.score - o2.score;
  8.  
  9. override fun areContentsTheSame(oldItem: User, newItem: User): Boolean = oldItem.id == newItem.id
  10.  
  11. override fun areItemsTheSame(item1: User, item2: User): Boolean = item1 == item2
  12. })
  13. }
  14.  
  15. override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder {
  16. val view = LayoutInflater.from(parent.context).inflate(R.layout.item_user, parent, false)
  17. return UserViewHolder(view)
  18. }
  19.  
  20. override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
  21. holder.setUser(userSortedList.get(position))
  22. }
  23.  
  24. override fun getItemCount() = userSortedList.size()
  25.  
  26. fun addUser(user: User) {
  27. userSortedList.add(user)
  28. }
  29.  
  30. fun addUsers(users: List<User>) {
  31. userSortedList.addAll(users)
  32. }
  33.  
  34. fun removeUser(index: Int) {
  35. if (userSortedList.size() == 0) {
  36. return
  37. }
  38. userSortedList.remove(userSortedList.get(index))
  39. }
  40.  
  41. class UserViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
  42.  
  43. var textViewUsername: TextView = itemView.findViewById(R.id.textViewUserName)
  44. var textViewBirthDate: TextView = itemView.findViewById(R.id.textViewBirthDate)
  45. var textViewScore: TextView = itemView.findViewById(R.id.textViewScore)
  46.  
  47. fun setUser(user: User) {
  48. textViewUsername.text = user.name
  49. textViewBirthDate.text = "Age: " + user.age
  50. textViewScore.text = "Score:" + user.score
  51. }
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement