Kotlin - 无法从片段更新 RecyclerView

Kotlin - Unable to update RecyclerView from fragment

我有一个带有按钮的片段 (FragmentAdd),该按钮应该更新另一个片段 (FragmentHome) 的 RecyclerView。为什么 RecyclerView 没有更新?

片段地址:

saveBtn?.setOnClickListener{
    arrayList = getUpdatedList()
    val homeAdapter = HomeAdapter(FragmentHome(),arrayList)
    homeAdapter.updateRecyclerView(arrayList)
}

片段主页:

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val view = inflater.inflate(R.layout.fragment_home, container, false)
    recyclerView = view.findViewById(R.id.recyclerView)
    recyclerView!!.setHasFixedSize(true)
    recyclerView!!.layoutManager = LinearLayoutManager(context)
    recyclerView!!.adapter = HomeAdapter(this, transactList)

    return view
}

家庭适配器:

fun updateRecyclerView(newList: ArrayList<Any>){
    itemsList.clear()
    itemsList.addAll(newList)
    this.notifyDataSetChanged()
}

我认为问题可能是因为我在 FragmentAdd 中创建了 HomeAdapter 的另一个对象。如果是这样,我应该如何确保它引用原始对象。

问题似乎是创建多个 HomeAdapter 实例。

您可以使用伴随对象创建单个对象

FragmentAdd

companion object {var homeAdapter:HomeAdapter?=null}

然后FragmentAdd

homeAdapter = HomeAdapter(FragmentHome(),arrayList)
homeAdapter.updateRecyclerView(arrayList)

FragmentHome

recyclerView!!.adapter=FragmentAdd.homeAdapter!!