是否可以在.onsobserve的onChanged方法中使用LiveData创建新查询



下面的代码显示了一个简单的数据库查询,它得到一个"非活动组":

viewModel.getInactiveGroups().observe(this, new Observer<List<Group>>() {
@Override
public void onChanged(List<Group> inactiveGroupList) {
if (inactiveGroupList == null){
int activeGroupNumber = ***I don't know what to do here***;
if (activeGroupNumber != 0)
buttonViewActiveGroups.setVisibility(View.VISIBLE);
} else {
//Rest of code to display list in recyclerview
}
}
});

当非活动组的列表为空时,我需要检查是否有任何活动组,以使按钮可见

问题是,我不知道我应该如何在onChanged中进行新的查询,是否有必要使用LiveData进行查询,或者我可以使用什么方法?

基本上,这是我需要的查询:SELECT COUNT(*) FROM Group WHERE isActive=1

这是一个包含Room、ViewModel和Repository的数据库,我不附加更多代码,因为我认为没有必要,我只怀疑在onChanged方法中进行新查询的方式

在不了解或不了解您的数据模型的情况下,您似乎可以在Dao中创建另一个查询函数,并在ViewModel中创建一个函数来调用它并更新相关的LiveData。那么,也许您将ActiveGroups作为另一个LiveData字段?

最新更新