Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. import android.view.LayoutInflater
  2. import android.view.View
  3. import android.view.ViewGroup
  4. import android.widget.TextView
  5. import androidx.annotation.IdRes
  6. import androidx.annotation.LayoutRes
  7. import androidx.recyclerview.widget.RecyclerView
  8.  
  9. class RecyclerViewArrayAdapter<T>(@LayoutRes var resource: Int,
  10. var objects: List<T>,
  11. @IdRes var textViewResourceId: Int = 0
  12. ) : RecyclerView.Adapter<RecyclerViewArrayAdapter.ViewHolder>() {
  13.  
  14. class ViewHolder(view: View, textViewResourceId: Int) : RecyclerView.ViewHolder(view) {
  15. var textView: TextView =
  16. when (textViewResourceId) {
  17. 0 -> view as TextView
  18. else -> view.findViewById(textViewResourceId)
  19. }
  20. }
  21.  
  22. override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
  23. val view = LayoutInflater.from(parent.context).inflate(resource, parent, false)
  24. return ViewHolder(view, textViewResourceId)
  25. }
  26.  
  27. override fun getItemCount(): Int {
  28. return objects.size
  29. }
  30.  
  31. override fun onBindViewHolder(holder: ViewHolder, position: Int) {
  32. val item = objects[position]
  33.  
  34. if (item is CharSequence) {
  35. holder.textView.text = item
  36. } else {
  37. holder.textView.text = item.toString()
  38. }
  39. }
  40.  
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement