kotlin的万能适配器
时间: 2023-12-22 08:59:03 浏览: 123
Kotlin中的万能适配器是指能够适用于不同数据类型和视图类型的适配器。它可以用于RecyclerView、ListView等组件中,用于将数据与视图进行绑定。
在Kotlin中,可以使用泛型来实现一个万能适配器。下面是一个示例代码:
```kotlin
class UniversalAdapter<T>(
private val layoutResId: Int,
private val itemList: List<T>,
private val bindHolder: (View, T) -> Unit
) : RecyclerView.Adapter<UniversalAdapter.ViewHolder<T>>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder<T> {
val view = LayoutInflater.from(parent.context).inflate(layoutResId, parent, false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: ViewHolder<T>, position: Int) {
bindHolder(holder.itemView, itemList[position])
}
override fun getItemCount(): Int {
return itemList.size
}
class ViewHolder<T>(itemView: View) : RecyclerView.ViewHolder(itemView)
}
```
使用时,你可以创建一个适配器实例,并传入相应的参数:
```kotlin
val dataList: List<String> = listOf("Item 1", "Item 2", "Item 3")
val adapter = UniversalAdapter(R.layout.item_layout, dataList) { view, item ->
val textView = view.findViewById<TextView>(R.id.itemTextView)
textView.text = item
}
recyclerView.adapter = adapter
```
这样就可以创建一个适用于不同数据类型和视图类型的适配器。你只需要提供布局资源、数据列表和数据绑定函数即可实现适配器的功能。
阅读全文