草庐IT

初识viewBinding,ViewModel,liveData,dataBinding

全部标签

java - 在 Viewmodel 中访问 BroadCastReceiver

我正在努力选择将数据从broadcastReceiver传递到ViewModel的正确方法,然后从那里将数据传递到我的存储库并更新LiveData。我使用FCM推送通知并拥有使用ActivityLifecycle的本地broadCastReceiver。我发现从BroadcastReceiver访问ViewModel是不好的做法,但不确定为什么?如果我管理broadcastReceiver的生命周期,它应该不会引起任何问题...那么将接收到的数据从FCM传递到我的存储库的MediatorLiveData的最佳方法是什么?我使用MediatorLiveData,因为我添加了不同的实时数据

android - 使用 LiveData 设置 TextView 的可见性

我想使用LiveData切换TextView的可见性。还有一些关于使用数据绑定(bind)设置可见性的其他帖子,但这些帖子使用Observables,而我想利用(更新的)LiveData。特别是使用LiveData。使用thisdocumentation和一些SO帖子,我已经了解到您应该正确对齐您的observable(LiveData)的getter,以便返回类型与您要设置的View属性的setter预期的类型相匹配。具体来说:View的setVisibility()需要一个int,而我有一个LiveData成员(因此我的ViewModel中的getter也将返回此类型)可以使用三元

android - 无法创建 ViewModel 类的实例(无法启动 Activity ComponentInfo)

我在我的项目中使用MVVM、Retrofit、LiveData,但在我看到这些链接之前出现此错误CannotcreateaninstanceofcustomViewModelCannotcreateaninstanceofclassViewModel错误java.lang.RuntimeException:UnabletostartactivityComponentInfo{ir.orangehat.movieinfo/ir.orangehat.movieinfo.application.home.HomeActivity}:java.lang.RuntimeException:Can

android - 使用 buildtools 3.4.0 进行数据绑定(bind) NoSuchMethodError

使用最新的DataBinding时classpath'com.android.tools.build:gradle:3.4.0-alpha10'NoSuchMethodError会在Activity加载时使应用程序崩溃。使用:classpath'com.android.tools.build:gradle:3.2.1'使数据绑定(bind)成功。这是崩溃:java.lang.NoSuchMethodError:Nodirectmethod(Landroidx/databinding/DataBindingComponent;Landroid/view/View;I)VinclassLa

Android dataBinding - @BindingAdapter 自定义应用命名空间被忽略

我在android中创建了一个自定义bindingAdapter,当我传入颜色时,我希望颜色发生变化,这实际上是为了测试我正在进行的工作,只是为了确保它能正常工作。这是代码:这是我的数据绑定(bind)View模型:publicclassUser{publicObservableIntvisible;publicUser(intvisible){this.visible=newObservableInt(visible);}@BindingAdapter({"app:bindColor"})//noticethebindColorcustomattributepublicstaticv

没有数据绑定(bind)的android MVVM

问题:我可以在不使用数据绑定(bind)的情况下使用MVVM实现android应用吗?我要解决的问题非常简单:从后端API读取项目列表并在Recylerview中显示它们。我是如何实现的:在View中-我有Activity和RecyclerViewAdapter模型:ApiResponse和数据模型网络-改造API服务,RxJava2对于ViewModel部分-我有一个ViewModel类(不派生自任何东西)基本上调用RetrofitService并使用RxJava调用获取数据。ViewModel有如下调用:voidgetItems();voidaddItemData();voidre

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

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

NodeJs(一):初识nodejs、模块化、CommonJS、ESModule等

目录(一)Nodejs简介1.nodejs是什么2.nodejs架构3.nodejs的应用场景(二)准备工作1.安装nodejs2.nodejs版本管理工具(三)nodejs的使用1.node的输入2.node的输出3.其他的console方法(四)全局对象1.常见的全局对象2.特殊的全局对象3.global和window的区别 (五)模块化***1.什么是模块化2.CommonJS(1)CommonJS的广泛使用(2)CommonJS在Node的使用(3)CommonJS在Node实现的本质(4)module.exports的本质(5)require()查找模块的细节(6)Node模块的加载

初识Linux(2).妈妈再也不用担心我Linux找不到门了。

文章目录前言1.man指令(重要):例如:2.cp指令(重要):例如:把123.txt复制到a目录中类似window如下操作:3.mv例如:类似window如下操作:4.nano例如:通过nano对文本文件`321.txt`进行编辑5.cat例如:打印Test.c文件的内容5.more指令例如:more与cat的区别:6.less指令(重要)7.head指令例如:8.tail指令例如:只显示后3行扩展结语前言“我会定期分享我的学习和工作经验,也欢迎大家留言和交流,让我们共同学习和进步!感谢大家的支持!”系列文章初识Linux(1).妈妈再也不用担心我Linux找不到门了。1.man指令(重要)

android - fragment 中的 ViewModel 清除屏幕旋转时的值

我想我在这里遗漏了一些明显的东西,但是......我将数据存储在DiaryViewModel类的uiModel中,并且由于我使用架构组件,所以我希望通过屏幕旋转保留数据-但事实并非如此。我不知道为什么。这是一个精简的fragmentclassDiaryFragment:Fragment(){privatelateinitvarviewModel:DiaryViewModeloverrideonCreateView(...){viewModel=ViewModelProviders.of(this).get(DiaryViewModel::class.java)viewModel.get