gpt4 book ai didi

android - Room 数据库中的 List<> 始终为空

转载 作者:行者123 更新时间:2023-11-29 02:31:50 38 4
gpt4 key购买 nike

以下类用于在 Room 数据库中存储调查列表。 LiveData是用来可以更新的

数据库的实体类:

@Entity
public class Survey {

@PrimaryKey
@NonNull
private String surveyID;
private String surveyName;
private String url;
private double lat;
private double lng;
private double radius;

public Survey(String surveyID, String surveyName, double lat, double lng, double radius, String url) {
this.surveyID = surveyID;
this.surveyName = surveyName;
this.lat = lat;
this.lng = lng;
this.radius = radius;
this.url = url;
}

各自的 Dao 接口(interface):

@Dao
public interface SurveyDao {

@Query("SELECT * FROM Survey")
LiveData<List<Survey>> getListOfSurveys();

/* Rest omitted */
}

各自的Repository类

public class SurveyRepository {

private final SurveyDao surveyDao;

@Inject
public SurveyRepository (SurveyDao surveyDao){
this.surveyDao = surveyDao;
}

public LiveData<List<Survey>> getListOfSurveys(){
return surveyDao.getListOfSurveys();
}
/* Rest omitted */
}

View 模型:

public class SurveyCollectionViewModule extends ViewModel {

private SurveyRepository repository;

public SurveyCollectionViewModule(SurveyRepository repository) {
this.repository = repository;
}

public LiveData<List<Survey>> getSurveys(){
return repository.getListOfSurveys();
}
/* Rest Omitted */
}

使用所有这些,我设置了一个 fragment ,其中有一个显示调查列表的 RecyclerView。列表获取方式如下:

public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);

surveyCollectionViewModule = ViewModelProviders.of(this, viewModelFactory)
.get(SurveyCollectionViewModule.class);

surveyCollectionViewModule.getSurveys().observe(this, new Observer<List<Survey>>() {
@Override
public void onChanged(@Nullable List<Survey> surveys) {
if(SurveyListFragment.this.listOfSurveys == null) {
setSurveyData(listOfSurveys);
}
}
});
}

但是,我遇到了问题,由于此列表为 NULL,适配器中对 getItemCount() 的调用失败。数据库不包含任何条目,但我仍然不知道为什么列表总是返回 null。

最佳答案

您的 onChanged 实际上并没有使用给定的 surveys 参数,将其更改为调用 setSurveyData(surveys) 以实际填写你的数据。

关于android - Room 数据库中的 List<> 始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49268294/

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