RecyclerView 回到销毁后变空 activity

RecyclerView becomes empty after coming back to a destroyed activity

我有一个 recyclerviewFirebase 数据库 中读取人员列表并将其显示在布局上。当我第一次访问 activity 时,一切都按预期进行,但是当我使用 BackButton 完成 activity 并尝试再次访问时到 activity,recyclerview 变为空。 请注意,我尝试通过使用 SingleValueEvent 的侦听器以编程方式添加人员。

    class myActivity : AppCompatActivity() {

    private var index = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_fisio)

        Firebase.database.setPersistenceEnabled(true)
        val database = Firebase.database("mydatabase")
        val myRef = database.getReference("People")


        val peopleList = ArrayList<MyPeopleListAdapter.MyPeopleItem>()

        val code = intent.getStringExtra("key")

        val recview = findViewById<RecyclerView>(R.id.recyclerViewF)
        recview.layoutManager = LinearLayoutManager(this)

        val adapter = MyPeopleListAdapter(peopleList)
        recview.adapter = adapter
        recview.setHasFixedSize(true)


        myRef.addListenerForSingleValueEvent(object : ValueEventListener {
            override fun onDataChange(snapshot: DataSnapshot) {


                val ref = snapshot.child(code.toString()).getValue<Map<String, *>>()

                val peopleListRef = snapshot.child(code.toString()).child("PeopleList")

                peopleListRef.children.forEach {
                    val hash = it.getValue<Map<String,*>>()
                    val pId = it.key
                    val pFull = hash!!["Name"].toString()
                    val pEmail = hash["Email"].toString()
                    val pPic = hash["Pic"].toString()
                    val pS = hash["S"].toString()


                    peopleList.add(index, MyPeopleListAdapter.MyPeopleItem( 
                        pId.toString(),
                        pPic,
                        pFull,
                        pEmail,
                        pS))

                    adapter.notifyItemInserted(index)

                    index += 1

                }

            }

            override fun onCancelled(error: DatabaseError) {
                println(error.message)
            }
        })
    }

    override fun onBackPressed() {
        super.onBackPressed()

        finish()
    }
}

问题是回收器视图没有实现 scrollToPosition() 方法。所以通知adapter后,调用scroll方法,代码变为:

// ... 

    adapter.notifyItemInserted(index)
    recview.scrollToPosition(0)

// ...