gpt4 book ai didi

java - 为什么列表数组在 onCreate 方法中失去其值?

转载 作者:行者123 更新时间:2023-12-02 09:22:38 24 4
gpt4 key购买 nike

也许我错过了一些东西,但我正在努力解决非常基本的问题。我想做的是通过 onCreate 方法调用的方法retrievedata从数据库访问一些数据,并将返回的列表数据分配给其中的listarray并基于我做了一些操作的列表数据的大小。

问题是,无论从我的数据库返回什么数据,数组列表都会将其大小返回为零。这是我在 onCreate() 方法中尝试执行的操作

              retrievedata();
if (list_entry_model_list.size()==0) //problem here returns true always
notesDatabase.listDaoClass().insert_lists(new List_Entry_Model(""));

下面给出了retrievedata()方法

             public void retrievedata() {

listLiveData = notesDatabase.listDaoClass().load_all_lists();
listLiveData.observe(this, new Observer<List<List_Entry_Model>>() {
@Override
public void onChanged(List<List_Entry_Model> list_entry_models) {
list_entry_model_list = list_entry_models; //here I assigned data to the Listarray that I declared as class variable.

listadapter.submitList(list_entry_model_list);

listadapter.setData(list_entry_model_list);

}
});
Log.d("yummyinside", String.valueOf(list_entry_model_list.size()));
}

如果我在 retrievedata() 方法中检索 listarray 的大小,它会显示正确的大小。Listarray 被声明为类变量。那么为什么它会失去值(value)。

谢谢。纠正我:)

最佳答案

listLiveData.observe 是一个异步函数,因此 if (list_entry_model_list.size()==0) 将被执行,而无需等待 listLiveData.observe 的结果,即将在将任何内容分配给 list_entry_model_list 之前执行。

关于java - 为什么列表数组在 onCreate 方法中失去其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58571155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com