是否必须在Android的MVVM模式中使用ViewModel和实时数据类?我们还能不使用MVVM模式而不使用它们吗?

问题描述 投票:0回答:1

我正在尝试在现有项目中实现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模式...

android mvvm viewmodel android-livedata
1个回答
0
投票

答案1.您可以在不使用LiveData的情况下使用MVVM模式,但是ViewModel是强制性的,因为不使用它,MVVM将毫无意义。 LiveData用于观察视图模型内部变量/方法对活动/片段所做的更改。

© www.soinside.com 2019 - 2024. All rights reserved.