Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.view.LayoutInflater
- import android.view.View
- import android.view.ViewGroup
- import android.widget.TextView
- import androidx.annotation.IdRes
- import androidx.annotation.LayoutRes
- import androidx.recyclerview.widget.RecyclerView
- class RecyclerViewArrayAdapter<T>(@LayoutRes var resource: Int,
- var objects: List<T>,
- @IdRes var textViewResourceId: Int = 0
- ) : RecyclerView.Adapter<RecyclerViewArrayAdapter.ViewHolder>() {
- class ViewHolder(view: View, textViewResourceId: Int) : RecyclerView.ViewHolder(view) {
- var textView: TextView =
- when (textViewResourceId) {
- 0 -> view as TextView
- else -> view.findViewById(textViewResourceId)
- }
- }
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
- val view = LayoutInflater.from(parent.context).inflate(resource, parent, false)
- return ViewHolder(view, textViewResourceId)
- }
- override fun getItemCount(): Int {
- return objects.size
- }
- override fun onBindViewHolder(holder: ViewHolder, position: Int) {
- val item = objects[position]
- if (item is CharSequence) {
- holder.textView.text = item
- } else {
- holder.textView.text = item.toString()
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement