我正在尝试在现有项目中实现MVVM模式。我在看过的许多开发人员网站和教程上都感到困惑,但是到处都是仅使用实时数据和视图模型的MVVM模式。好像有可能不使用LiveData和ViewModel就可以使用MVVM模式]
问题1。不使用LiveData和ViewModel就可以使用MVVM模式android吗?问题2。在不使用LiveData的情况下,将ViewModel扩展到某个类的用途是什么(例如Test类扩展了ViewModel)
我正在执行RecyclerView分页以便每次滚动结束时都获得记录集,如下所示
ProfileListViewModel viewModel =
ViewModelProviders.of(this).get(ProfileListViewModel.class);
//to get first set of records
viewModel.getProfileList().observe(this, new Observer<List<Profiles>>() {
@Override
public void onChanged(@Nullable List<Profiles> profiles) {
if (projects != null) {
//…
profileAdapter.setProfiles(profiles);
}
}
});
//to get second set of records
viewModel.getRemaningProfileList().observe(this, new Observer<List<Profiles>>() {
@Override
public void onChanged(@Nullable List<Profiles> profiles) {
if (projects != null) {
//…
profileAdapter.setProfiles(profiles);
}
}
});
问题3:对于使用MVVM的此功能,我们需要使用上述两个方法调用(两个LiveData对象)来每次获取新记录时都会有其他选择,这让我感到困惑。
问题4:有时我会再次在SQLite android中插入一些记录,我再次从头开始调用此方法,例如(viewModel.getProfileList()。observe())...之后']
我正在清除当前LiveData并再次设置新记录。是否有任何可能,例如插入/更新记录后将自动刷新数据。
谢谢..
我正在尝试在现有项目中实现MVVM模式。我在看过的许多开发人员网站和教程上都感到困惑,但是到处都有使用实时数据和视图模型的MVVM模式...
答案1.您可以在不使用LiveData的情况下使用MVVM模式,但是ViewModel是强制性的,因为不使用它,MVVM将毫无意义。 LiveData用于观察视图模型内部变量/方法对活动/片段所做的更改。