0

我认为这是参考问题。

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

我创建了两个recyclerview,并制作了一个列表,然后通过一种方法发送列表以创建另一个recyclerview。

例如,

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.

我怎样才能削减参考?

4

1 回答 1

0

两个 Adapter 都持有相同的List内容,您可以使用两个单独的 Lists 。每当您需要列表中的数据时,您都可以查看Adapter. 下面是一个带有问题示例的示例。

private fun initOtherRecyclerView(mList: ArrayList<String>){
    yourList.addAll(mList);
    yourAdapter.setList(yourList)
    rcvYour.adapter = yourAdapter
}
于 2020-12-04T11:55:38.130 回答