草庐IT

Jetpack学习之ViewModel、Lifecycles、LiveData

全部标签

android - LiveData.getValue() 使用 Room 返回 null

JavaPOJO对象publicclassSection{@ColumnInfo(name="section_id")publicintmSectionId;@ColumnInfo(name="section_name")publicStringmSectionName;publicintgetSectionId(){returnmSectionId;}publicvoidsetSectionId(intmSectionId){this.mSectionId=mSectionId;}publicStringgetSectionName(){returnmSectionName;}pub

android - LiveData.getValue() 使用 Room 返回 null

JavaPOJO对象publicclassSection{@ColumnInfo(name="section_id")publicintmSectionId;@ColumnInfo(name="section_name")publicStringmSectionName;publicintgetSectionId(){returnmSectionId;}publicvoidsetSectionId(intmSectionId){this.mSectionId=mSectionId;}publicStringgetSectionName(){returnmSectionName;}pub

android - 在 Android MVVM 架构中显示来自 ViewModel 的对话框

关于带有新架构组件的MVVM,我有一个问题,如果我的应用需要显示一个对话框,其中包含来self的VM中发生的某些操作的3个选项,我应该如何实现?谁负责向Activity/Fragment发送显示对话框的命令? 最佳答案 与UI相关的操作(例如打开新Activity或显示对话框)是从View(Activity或fragment)触发的,而不是从ViewModel触发的。ViewModel没有对View的引用以防止泄漏并保持表示层“react性”。您可以将您的View(Activity或fragment)订阅到ViewModel中的可观

android - 在 Android MVVM 架构中显示来自 ViewModel 的对话框

关于带有新架构组件的MVVM,我有一个问题,如果我的应用需要显示一个对话框,其中包含来self的VM中发生的某些操作的3个选项,我应该如何实现?谁负责向Activity/Fragment发送显示对话框的命令? 最佳答案 与UI相关的操作(例如打开新Activity或显示对话框)是从View(Activity或fragment)触发的,而不是从ViewModel触发的。ViewModel没有对View的引用以防止泄漏并保持表示层“react性”。您可以将您的View(Activity或fragment)订阅到ViewModel中的可观

Android 架构组件 : using ViewModel for RecyclerView items

我正在试验架构组件,我想为RecyclerView的每个项目构建一个ViewModel。我不确定这在形式上是否正确,或者我应该坚持“旧方式”。我有这个适配器:publicclassPostAdapterextendsRecyclerView.Adapter{privateListlist;publicstaticclassPostViewHolderextendsRecyclerView.ViewHolder{finalItemPostBindingbinding;publicPostViewHolder(ItemPostBindingbinding){super(binding.ge

Android 架构组件 : using ViewModel for RecyclerView items

我正在试验架构组件,我想为RecyclerView的每个项目构建一个ViewModel。我不确定这在形式上是否正确,或者我应该坚持“旧方式”。我有这个适配器:publicclassPostAdapterextendsRecyclerView.Adapter{privateListlist;publicstaticclassPostViewHolderextendsRecyclerView.ViewHolder{finalItemPostBindingbinding;publicPostViewHolder(ItemPostBindingbinding){super(binding.ge

android - LiveData 在第一次回调后删除观察者

收到第一个结果后如何移除观察者?以下是我尝试过的两种代码方式,但即使我删除了观察者,它们都会继续接收更新。Observerobserver=newObserver(){@OverridepublicvoidonChanged(@NullableDownloadItemdownloadItem){if(downloadItem!=null){DownloadManager.this.downloadManagerListener.onDownloadManagerFailed(null,"thisitemalreadyexists");return;}startDownload();mo

android - LiveData 在第一次回调后删除观察者

收到第一个结果后如何移除观察者?以下是我尝试过的两种代码方式,但即使我删除了观察者,它们都会继续接收更新。Observerobserver=newObserver(){@OverridepublicvoidonChanged(@NullableDownloadItemdownloadItem){if(downloadItem!=null){DownloadManager.this.downloadManagerListener.onDownloadManagerFailed(null,"thisitemalreadyexists");return;}startDownload();mo

android - 如何清除 LiveData 存储值?

根据LiveDatadocumentation:TheLiveDataclassprovidesthefollowingadvantages:...Alwaysuptodatedata:IfaLifecyclestartsagain(likeanactivitygoingbacktostartedstatefromthebackstack)itreceivesthelatestlocationdata(ifitdidn’talready).但有时我不需要这个功能。例如,我在ViewModel中有以下LiveData,在Activity中有Observer://LiveDatavalsh

android - 如何清除 LiveData 存储值?

根据LiveDatadocumentation:TheLiveDataclassprovidesthefollowingadvantages:...Alwaysuptodatedata:IfaLifecyclestartsagain(likeanactivitygoingbacktostartedstatefromthebackstack)itreceivesthelatestlocationdata(ifitdidn’talready).但有时我不需要这个功能。例如,我在ViewModel中有以下LiveData,在Activity中有Observer://LiveDatavalsh