RecyclerView 数据未显示

RecylerView Data not showing

我是 Kotlin 的新手,我有这段 Kotlin 代码,加载的数据一开始没有显示,但在导航到另一个 activity 并返回后,数据出现了。 在网上我查过他们说要添加 notifyOnChnaged 但我无法实现它,如果你知道如何添加 notifyOnChanged 或任何其他解决方案,请帮助我。

class SecretsActivity : AppCompatActivity() {
    lateinit var bind : ActivitySecretsBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        val secretsList = firebaseSecretsData()
        super.onCreate(savedInstanceState)
        bind = ActivitySecretsBinding.inflate(layoutInflater)
        setContentView(bind.root)
        bind.secretsRecyclerView.adapter = SecretsAdapter(secretsList)
        bind.secretsRecyclerView.layoutManager = StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)
        bind.secretsRecyclerView.setHasFixedSize(true)
        bind.secretsRecyclerView.adapter = SecretsAdapter(secretsList)

        bind.ButtonWrite.setOnClickListener {
            val intent = Intent(this, WriteActivity::class.java)
            startActivity(intent)
            overridePendingTransition(R.transition.fadein, R.transition.fadeout)
            finish()
        }
    }
    override fun onBackPressed() {
        super.onBackPressed()
        val intent = Intent(this, MainActivity::class.java)
        startActivity(intent)
        overridePendingTransition(R.transition.fadein, R.transition.fadeout)
        finish()
    }
    private  fun firebaseSecretsData() : List<SecretsModel>{
        val list = ArrayList<SecretsModel>()
        val dbref = FirebaseDatabase.getInstance().getReference("Secrets")
        dbref.addValueEventListener(object : ValueEventListener{
            override fun onDataChange(snapshot: DataSnapshot) {
                if(snapshot.exists()){
                    for(i in snapshot.children){
                        val item = SecretsModel(i.value.toString())
                        list+=item
                    }
                }
            }

            override fun onCancelled(error: DatabaseError) {
                TODO("Not yet implemented")
            }

        })
        return list
    }
}
//Initialize this first

    val myAdapter = SecretsAdapter(secretsList)

。 . . . .

 private  fun firebaseSecretsData() : List<SecretsModel>{
            val list = ArrayList<SecretsModel>()
            val dbref = 
            FirebaseDatabase.getInstance().getReference("Secrets")
            dbref.addValueEventListener(object : ValueEventListener{
                override fun onDataChange(snapshot: DataSnapshot) {
                    if(snapshot.exists()){
                        for(i in snapshot.children){
                            val item = SecretsModel(i.value.toString())
                            list+=item
                        }
                        //Add  this code
                            myAdapter.notifyDataSetChanged()
                    }
                }

。 . . . .

此外,出于性能原因,您应该尽可能使用 DiffUtil