jjzjj

LiveData

全部标签

android - LiveData 如何知道房间数据库中的数据何时更改?

我正在学习android中的Mvvm模式,但我不明白一件事。实时数据如何知道房间数据库中的数据何时发生变化?我有这段代码:fragment:newUserViewModel.getListItemById(itemId).observe(this,newObserver(){@OverridepublicvoidonChanged(@NullableUseruser){tv.setText(user.getName());}});查看模型:publicLiveDatagetListItemById(StringitemId){returnrepository.getListItem(i

android - 如何使用 livedata 进行数据绑定(bind)?

如何使用livedata进行数据绑定(bind)?activity_user_detail.xml:用户View模型.java:publicclassUserViewModelextendsViewModel{publicLiveDatauser;publicvoidgetUserById(UserDaouserDao,StringuserId){transaction=UserDao.load(userId);}}用户道.java:@Query("SELECT*FROM`user`WHEREid=:userId")LiveDataload(StringuserId);UserDeta

LiveData 的 Android 测试

我有这个模拟课:classMockCategoriesRepositoryimplementsCategoriesRepository{@OverridepublicLiveData>getAllCategories(){Listcategories=newArrayList();categories.add(newCategory());categories.add(newCategory());categories.add(newCategory());MutableLiveData>liveData=newMutableLiveData();liveData.setValue(c

android - 我是否需要处理使用 LiveDataReactiveStreams 创建的发布者

假设我有一个在应用程序的不同部分之间共享的Flowable。在我想要观察的每个fragment中,我使用LiveDataReactiveStreams.fromPublisher将其转换为LiveData以避免泄漏和崩溃。我现在有一个包裹我的Flowable的LiveData。然后我将LiveData传递到我的ViewModel(在ViewModelFactory中)。据我所知,我可以继续使用LiveData而不必担心泄漏。现在,我没有直接观察LiveData,而是想用LiveDataReactiveStreams.toPublisher和Flowable.fromPublisher将

android - 具有共享偏好的 LiveData

我有一个设置屏幕,我正在其中设置一些值。当我设置这些值时,它会保存在共享首选项中,并且我需要这些值请求网络api调用作为参数。现在我可以在我的Activity中使用共享首选项的监听器,然后进行API调用并获取新数据,但我想将其与LiveData一起使用。我如何使用LiveData监听共享偏好的变化,然后使用新参数进行网络调用。 最佳答案 下面一段很棒的代码是SharedPreference的LiveData实现。效果很好。packagecom.chargingwatts.chargingalarm.util.preference;i

android - 用于数据绑定(bind)的 LiveData 与 ObservableField

Stackoverflow上有多个与LiveData和ObservableField之间的区别相关的问题。另外,我在互联网上找到了多篇关于这个主题的文章。他们都解释说LiveData与ObservableField不同,它是生命周期感知的。他们中的大多数人还提到,如果Activity或Fragment等组件观察到该属性,则使用LiveData而不是ObservableField是有利的,因此我们不需要取消订阅。然而,即使阅读了所有这些内容,我仍然不清楚使用LiveData进行数据绑定(bind)是否优于ObservableField。例如:View模型:classUserViewMod

Android Room LiveData 选择查询参数

我决定通过开发一个简单的数据库应用来自学Java和Android。我已经以“惰性”方式实现了一些功能——所有选择都在主线程上完成。现在我想使用LiveData进行选择。我读过simplistictrainingguideonandroiddevelopers并实现amorecomplexsolutionfromcodelabsguide,带有LiveData和RecyclerView。对整个表插入、更新、删除和选择工作完美,但我不知道如何将参数传递给选择。示例:我有一个包含所有记录的可滚动列表的Activity,我想对列表应用一些过滤器(搜索)。据我了解,DAO中的实际选择方法仅调用一

如果快速调用,android LiveData Observable 不会返回数据

开发一款需要一次性向同一个端点发送多个API调用的应用。例如-目录浏览场景,需要通过为当前文件夹中的所有文件夹发送get调用来获取目录结构。问题是,正确改造中的所有文件夹的响应分别出现,但LiveDataobservable只给我整个列表的一个响应。目录结构:-test->temp->temp1->temp2->temp3->temp4Observable监听回调:-mViewModel.getServerFilesLiveData().observe(this,browseServerDataResource->{if(browseServerDataResource!=null){

android - 测试 LiveData 转换?

我使用Android架构组件和响应式方法构建了启动画面。我从PreferencesLiveData对象返回funisFirstLaunchLD():SharedPreferencesLiveData.我有将LiveData传递给View并更新首选项的ViewModelvalisFirstLaunch=Transformations.map(preferences.isFirstLaunchLD()){isFirstLaunch->if(isFirstLaunch){preferences.isFirstLaunch=false}isFirstLaunch}在我的Fragment中,我从

android - 最佳实践 : Runtime filters with Room and LiveData

我在一个屏幕上工作,该屏幕使用回收器显示Room包装的DB的内容。适配器从隐藏对RoomDAO对象的查询调用的ViewModel获取LiveData。因此,LiveData对象实际上是一个ComputableLiveData对象,它知道RoomDB的更改。现在我想在屏幕上添加过滤器选项。在这个Room-LiveData-ViewModel设置中,我将在哪里/如何实现它?适配器或ViewModel是否应该“后过滤”LiveData中的结果?我是否应该为每次过滤器更改从房间重新查询数据?我可以为此重用底层的(可计算的)LiveData吗?如果不是,我真的应该为每个过滤器更改创建新的Live