gpt4 book ai didi

android - 使用 ViewModel 和 ID 从 ROOM DB 访问数据

转载 作者:搜寻专家 更新时间:2023-11-01 09:23:08 25 4
gpt4 key购买 nike

假设我在 Room DB 中有一个数据列表。让数据为:setId、formId、formName。一个setId中可以有多个formId。设setId 1包含10个表单,2包含5个表单。

现在我想做的是,使用 ViewModel 中的 setId 从数据库中提取数据。

让我的道成为:

@Query("SELECT * FROM form WHERE setId = :id")
LiveData<List<Form>> getAllFilledForms(int id);

如何在 ViewModel 中实现此类操作。我想检索所有设置 id 相同的表单列表,设 1。

编辑: View 模型类:

public class ListSetViewModel extends AndroidViewModel {

private final LiveData<List<FormSet>> allFormSets;
private FormDatabase formDatabase;
public ListSetViewModel(@NonNull Application application) {
super(application);
formDatabase = FormDatabase.getDatabase(application);
allFormSets = formDatabase.formSetDao().getAllFilledForms(setId);
}

public LiveData<List<FormSet>> getAllFormSets(setId){
return allFormSets;
}
}

最佳答案

您需要通过 Factory 或 Dagger2 为您的 ViewModel 注入(inject)一个 ID。或者您可以使用公共(public)方法获取数据。

public LiveData<List<FormSet>> getAllFormSets(setId){
return allFormSets = formDatabase.formSetDao().getAllFilledForms(setId);
}

关于android - 使用 ViewModel 和 ID 从 ROOM DB 访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52945722/

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