Skip to content

Instantly share code, notes, and snippets.

@alibahaaa
Created January 22, 2023 15:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alibahaaa/076fbb669a32f25c51e7e33cd407c459 to your computer and use it in GitHub Desktop.
Save alibahaaa/076fbb669a32f25c51e7e33cd407c459 to your computer and use it in GitHub Desktop.
interface RecyclerViewAdapter {
fun getItemCount(): Int
fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int)
}
class ListAdapter(private val items: List<String>) : RecyclerViewAdapter {
override fun getItemCount(): Int {
return items.size
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val textView = holder.itemView.findViewById<TextView>(R.id.text_view)
textView.text = items[position]
}
}
class RecyclerViewAdapterWrapper(private val adapter: RecyclerViewAdapter) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val inflater = LayoutInflater.from(parent.context)
val view = inflater.inflate(R.layout.list_item, parent, false)
return object : RecyclerView.ViewHolder(view) {}
}
override fun getItemCount(): Int {
return adapter.getItemCount()
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
adapter.onBindViewHolder(holder, position)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment