jjzjj

viewModel

全部标签

android - 未观察到对设置 LiveData 的多次调用

我最近看到一个奇怪的问题阻碍了我的项目。设置实时数据值的多次调用不会在View中调用观察者。似乎只有最后设置的值才真正调用View中的观察者。这是评论的代码fragment。主Activity.ktclassMainActivity:AppCompatActivity(){privatelateinitvarviewModel:MainViewModeloverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_mai

android - 对 ViewModel 中的 Activity 生命周期作出 react

我正在尝试创建一个将使用MVVM架构的应用程序,但有一件事我不太明白。Android官方文档说在ViewModel中引用Activity上下文不是一个好主意(因为ViewModel可能比Activity长寿)所以当我想在Activity恢复时执行某些操作时,我开始怀疑用例。我知道ViewModel不应该自己执行业务逻辑,但即使我使用了一些服务类(假设GPSService必须启动和暂停,每次Activity在暂停时恢复),并且在这个服务中我对ActivityonResume使用react(使用生命周期观察者)我仍然会从ViewModel引用此Activity,因为我引用的服务包含对正在观

Android DataBinding setVariable() 后跟 getVariable() 调用返回 null

我在以下布局中使用DataBinding。我在绑定(bind)对象上调用setViewModel()方法。如果我立即调用binding.getViewModel(),它会返回null。见下面的代码:布局:Activity:publicclassViewExpenseListActivityextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);ActivityViewExpenseListBindingbind

Android 架构组件 - ViewModel Observable & Proguard

我无法让ViewModel组件与Proguard一起工作。我已经必须添加以下内容以防止由于NoSuchMethodException导致崩溃:init()-keepclasscom....SlideshowViewModel{*;}但是,我在Activity中的观察者没有收到任何数据。这在我启用Proguard之前工作正常,所以我知道Proguard是原因,我只是不知道为什么(这里是新手Proguardian)。我需要添加什么规则才能使observables正常工作?我的ViewModel(Kotlin)中有以下内容valcurrentItem=MediatorLiveData()..

Android ViewModel 无法在 fragment 更改后继续存在

我一直在尝试使用View模型和实时数据在fragment之间共享信息。但是,当我从第一个fragment更改为另一个fragment时,我的View模型似乎已重新初始化,这让我丢失了之前存储的所有数据。我在我的fragment中以相同的方式两次获得我的View模型:@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);interventionViewModel=ViewModelProviders.of(this).get(InterventionsViewMod

android - 我们如何在 ViewModel 中将 "assign"LiveData 从 Room 转移到 MutableLiveData

最近,我被下面的代码困住了。publicclassNoteViewModelextendsViewModel{privatefinalMutableLiveData>notesLiveData=newMutableLiveData();publicNoteViewModel(){LiveData>notesLiveDataFromRepository=NoteRepository.INSTANCE.getNotes();//HowcanI"assign"LiveDatafromRoom,toMutableLiveData?}}我想知道,如何将Room中的LiveData“分配”到Mut

Android:listView Adapter 应该是您的 ViewModel 类的一部分吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我正在开发Android应用程序并尝试遵循MVVM设计模式。我有一个listView,问题是Adapter是否应该是ViewModel类的一部分?使用MVVM设计模式构建此结构的最佳方式是什么?

Android ViewModel 没有零参数构造函数

我正在关注this了解LiveData和ViewModel的文档。在文档中,ViewModel类具有这样的构造函数,publicclassUserModelextendsViewModel{privateMutableLiveDatauser;@InjectUserModel(MutableLiveDatauser){this.user=user;}publicvoidinit(){if(this.user!=null){return;}this.user=newMutableLiveData();}publicMutableLiveDatagetUser(){returnuser;}

android - 如何在 MVVM 中使用 ProgessDialog 显示进度

我使用MVVM编写了一个Android应用程序,我在其中从ViewModel调用webservice并将结果存储在RoomDB中。在View中,我正在观察ViewModel的实时数据。我需要在使用Retrofit从Web服务获取数据时显示ProgressDialog。我需要在哪里编写代码来显示progressdialog因为我不应该在除View组件之外的其他架构组件中使用userinterface小部件?谁能帮我处理这种情况?提前致谢。 最佳答案 是的,您可以通过从Activity调用对话框并在View模型观察器中隐藏对话框来实现。

android - 为 fragment 再次创建 ViewModel

我在MainFragment中创建View模型:@OverridepublicvoidonActivityCreated(@NullableBundlesavedInstanceState){super.onActivityCreated(savedInstanceState);...MainViewModelmainViewModel=ViewModelProviders.of(this).get(MainViewModel.class);...}当用户选择项目然后导航到详细信息fragment时,此事务将添加到后台堆栈。getFragmentManager().beginTrans