Android 在MVVM设计模式中,从存储库更新ViewModel中的LiveData变量的推荐方法是什么?
我是MVVM架构的初学者。我想从数据库中检索项目列表,并跟踪检索的项目数量。我遵循MVVM设计模式。以下是我想到的第一种方法:Android 在MVVM设计模式中,从存储库更新ViewModel中的LiveData变量的推荐方法是什么?,android,design-patterns,mvvm,Android,Design Patterns,Mvvm,我是MVVM架构的初学者。我想从数据库中检索项目列表,并跟踪检索的项目数量。我遵循MVVM设计模式。以下是我想到的第一种方法: class SampleViewModel extends ViewModel { private MutableLiveData<Integer> count = new MutableLiveData<>(); getItems(); public void getItems() { Lis
class SampleViewModel extends ViewModel
{
private MutableLiveData<Integer> count = new MutableLiveData<>();
getItems();
public void getItems()
{
List<String> items = new ArrayList<>();
/*
* I am skipping the code to access the database and retrieving the list
* */
for (String item : items)
{
items.add(item);
count.setValue(items.size());
}
}
LiveData<Integer> GetCount()
{
return count;
}
}
class SampleViewModel扩展了ViewModel
{
私有MutableLiveData计数=新的MutableLiveData();
getItems();
公共项目()
{
列表项=新建ArrayList();
/*
*我跳过了访问数据库和检索列表的代码
* */
用于(字符串项:项)
{
项目。添加(项目);
count.setValue(items.size());
}
}
LiveData GetCount()
{
返回计数;
}
}
然后观察我的活动中的
计数
数据。但是,后来我了解到,建议从存储库执行与数据库相关的任务,根据doc,不建议将LiveData变量从ViewModel传递到存储库。因此,我的问题是如何从存储库中更新count
变量,或者换句话说,从存储库中更新ViewModel中的LiveData变量的建议方法是什么,以便可以正确地从活动中观察到它?您可以使用回调机制,这是一个实现回调机制的示例,非常感谢您的回复。那么,从存储库中声明的viewmodel调用接口可以吗?