当我把一个项目添加到一个回收视图中时,它会得到两个



我认为这是引用问题。

RecyclerViews似乎共享具有相同引用的项目。

我创建了两个回收站,我制作了一个列表,并通过创建另一个回收站的方法发送列表。

例如,

val myAdapter = MyAdapter()
val myList = ArrayList<String>()
val yourAdapter = MyAdapter()
val yourList: ArrayList<String>? = null
private fun init(){
initAction()
list.add("lion")
list.add("cat")
list.add("dog")
myAdapter.setList(list)
rcvMy.adapter = myAdapter

initOtherRecyclerView(list)
}
private fun initOtherRecyclerView(mList: ArrayList<String>){
yourList = mList
yourAdapter.setList(yourList)
rcvYour.adapter = yourAdapter
}
private fun initAction(){
btnAdd.setOnClickListener{
myAdapter.items.add("Hello")
myAdapter.notifyDataSetChanged()
}
}

每当我单击btnAdd时,它都会在rcvMy中添加两个项目。

如何剪切引用?

两个适配器都持有相同的List,您可以使用两个单独的列表。每当您需要列表中的数据时,都可以查看Adapter。下面是一个有问题的例子。

private fun initOtherRecyclerView(mList: ArrayList<String>){
yourList.addAll(mList);
yourAdapter.setList(yourList)
rcvYour.adapter = yourAdapter
}

相关内容

  • 没有找到相关文章

最新更新