Guest User

Untitled

a guest
Jan 23rd, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. class DataAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
  2. val ITEM_TYPE = 0
  3. val LOADING_TYPE = 1
  4.  
  5. var data = arrayListOf<Content>()
  6.  
  7. fun addItem(position: Int, items: List<Content>) {
  8. data.addAll(position, items)
  9. notifyDataSetChanged()
  10. }
  11.  
  12. fun addItem(items: List<Content>) {
  13. val size = data.size
  14. data.addAll(items)
  15. notifyItemRangeInserted(size, itemCount)
  16. }
  17.  
  18. fun addItem(position: Int, items: Content) {
  19. data.add(position, items)
  20. notifyItemInserted(itemCount)
  21. }
  22.  
  23. fun addItem(items: Content) {
  24. data.add(items)
  25. notifyItemInserted(itemCount)
  26. }
  27.  
  28. fun removeItem(position: Int) {
  29. data.removeAt(position)
  30. notifyItemRemoved(itemCount)
  31. }
  32.  
  33. override fun onBindViewHolder(holder: RecyclerView.ViewHolder?, position: Int) {
  34. if (holder is ItemViewHolder) {
  35. holder.setUp(data[position])
  36. }
  37. }
  38.  
  39. override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): RecyclerView.ViewHolder {
  40. return if (viewType == ITEM_TYPE) {
  41. val view = LayoutInflater.from(parent?.context).inflate(R.layout.item_ly, parent, false)
  42. ItemViewHolder(view)
  43. } else {
  44. val view = LayoutInflater.from(parent?.context).inflate(R.layout.loading_ly, parent, false)
  45. LoadingViewHolder(view)
  46. }
  47. }
  48.  
  49. override fun getItemCount(): Int {
  50. return data.size
  51. }
  52.  
  53. override fun getItemViewType(position: Int): Int {
  54. return if (data[position].position == -1)
  55. LOADING_TYPE
  56. else ITEM_TYPE
  57. }
  58. }
Add Comment
Please, Sign In to add comment