Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class SortedListSampleAdapter : RecyclerView.Adapter<SortedListSampleAdapter.UserViewHolder>() {
- private val userSortedList: SortedList<User>
- init {
- userSortedList = SortedList(User::class.java, object : SortedListAdapterCallback<User>(this) {
- override fun compare(o1: User, o2: User): Int = o1.score - o2.score;
- override fun areContentsTheSame(oldItem: User, newItem: User): Boolean = oldItem.id == newItem.id
- override fun areItemsTheSame(item1: User, item2: User): Boolean = item1 == item2
- })
- }
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder {
- val view = LayoutInflater.from(parent.context).inflate(R.layout.item_user, parent, false)
- return UserViewHolder(view)
- }
- override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
- holder.setUser(userSortedList.get(position))
- }
- override fun getItemCount() = userSortedList.size()
- fun addUser(user: User) {
- userSortedList.add(user)
- }
- fun addUsers(users: List<User>) {
- userSortedList.addAll(users)
- }
- fun removeUser(index: Int) {
- if (userSortedList.size() == 0) {
- return
- }
- userSortedList.remove(userSortedList.get(index))
- }
- class UserViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- var textViewUsername: TextView = itemView.findViewById(R.id.textViewUserName)
- var textViewBirthDate: TextView = itemView.findViewById(R.id.textViewBirthDate)
- var textViewScore: TextView = itemView.findViewById(R.id.textViewScore)
- fun setUser(user: User) {
- textViewUsername.text = user.name
- textViewBirthDate.text = "Age: " + user.age
- textViewScore.text = "Score:" + user.score
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement