【发布时间】:2020-01-21 21:58:25
【问题描述】:
我有以下类(我将另一个回收器视图适配器传递给构造函数):
class BaseAdapter<T>(private var items: ArrayList<T?>, private val adapter: RecyclerView.Adapter<RecyclerView.ViewHolder>): RecyclerView.Adapter<RecyclerView.ViewHolder>()
是否可以不直接传递项目并从适配器获取它们?
我不想再次传递项目并想从适配器获取它们。
private var adapter: RecyclerViewAdapter? = null
adapter = RecyclerViewAdapter(items!!, applicationContext) // another adapter, can be any
recyclerView.layoutManager = layoutManager
recyclerView.adapter = BaseAdapter(items, adapter!!)
如你所见,我传递了两次项目,因为我需要在新的适配器中使用它们,比如
override fun showAd(firstVisibleItemPosition: Int) {
if(isInsertionNeeded){
items.add(firstVisibleItemPosition + 1, null)
setVisibleItemPos(firstVisibleItemPosition + 1)
notifyItemInserted(firstVisibleItemPosition+1)
isInsertionNeeded = false
}
}
【问题讨论】:
-
你的问题不清楚,请问清楚
-
在 Adapter 类中添加 items 变量,重写 set 方法以使用新数组重新加载适配器,您可以查看 DiffUtils
标签: java android kotlin android-recyclerview