目前需要LifecycleOwner才能创建观察者。我有在ViewModel中创建观察者的代码,因此在我的Fragment中检索ViewModel时我附加了LifecycleOwner。根据Google的文档。警告:ViewModel绝不能引用View、生命周期或任何可能包含对Activity上下文的引用的类。我是否违反了该警告?如果违反了,您建议我以何种方式移动我创建的数据返回观察者?我只做了一个观察者,所以我想知道它是否仍然有效。因为在谷歌的文档中它也说了。ViewModel对象可以包含LifecycleObservers,例如LiveData对象。主fragmentprivate
使用Retrofit我能够获取用户列表,但如果出现错误,我应该如何设法向UI发送通知。我在MVVM模式和Retrofit中使用Android架构组件“ViewModel”、“LiveData”作为网络库。 最佳答案 当网络请求成功完成时,您正在设置livedata的值。同样,在发生错误时将livedata的值设置为null,并在更新UI之前在Activity中检查null。进一步:如果你想向用户显示不同类型的错误。创建一个包含基本模型的基础模型类error_code、error_status等字段。
我需要澄清一些关于mvp和mvvm设计模式的疑惑1)在更新View的mvp和mvvm中。演示者/View模型设置要在View中显示的数据或View从中检索数据演示者/View模型并显示它2)presenter和view-model之间有何不同。"MVVM使用数据绑定(bind)来更新View,而演示者使用更新View的传统方法”。是吗? 最佳答案 在MVP中,Presenter通常通过接口(interface)持有对View的引用。当Presenter计算新数据时,他负责在View/Interface上调用正确的方法来更新UI。在M
我有一个RecyclerView适配器和它的项目中的一个按钮。当我点击按钮时,我想从服务器中删除它的项目,然后从RecyclerView中删除。我想通过观察LiveData来做到这一点(当它从服务器中删除时,我必须将它从回收器View中删除,因此我需要服务器的结果)最佳实践方法是什么-我必须在fragment中观察并将监听器传递给适配器并在fragment中实现它,当用户单击按钮时调用fragment中的方法或者有更好的方法这样做? 最佳答案 找了好几个帖子,终于找到了推荐的解决方案。第1步:在您的适配器中声明一个接口(interf
我正在尝试使用DataBinding库在我的应用程序中实现MVVM。对于我已经完成的简单任务,我可以找到出路,但问题是我无法在执行某些操作后完成Activity。问题:收到特定广播后,我必须关闭ViewModel类的Activity。由于VM类没有View的引用,我该如何完成Activity?准确地说,我有启动画面和相应的VM类,它启动IntentService来下载数据。下载数据后,我必须完成初始屏幕并启动MainActivity。我找到了从VM启动新Activity的方法,但是要完成前一个Activity还是个谜。你能帮帮我吗?谢谢! 最佳答案
我正在尝试创建一个将使用MVVM架构的应用程序,但有一件事我不太明白。Android官方文档说在ViewModel中引用Activity上下文不是一个好主意(因为ViewModel可能比Activity长寿)所以当我想在Activity恢复时执行某些操作时,我开始怀疑用例。我知道ViewModel不应该自己执行业务逻辑,但即使我使用了一些服务类(假设GPSService必须启动和暂停,每次Activity在暂停时恢复),并且在这个服务中我对ActivityonResume使用react(使用生命周期观察者)我仍然会从ViewModel引用此Activity,因为我引用的服务包含对正在观
我正在构建一个Android应用程序,我对Android上的MVVM和数据绑定(bind)概念还很陌生。我在一些地方(比如here)读到RxJava和谷歌的DataBindinglibrary可用于实现MVVM模式。我浏览了DataBinding的官方Android文档并且正在浏览aprojectGoogle使用DataBinding在Mvvm上引用。但是,到目前为止,我还不知道RxJava是如何工作的,这可能从问题中显而易见。我的问题是,考虑到扩展我的应用程序的长期目标,是否值得投入精力学习RxJava?还是DataBinding足以完全替代它?我完全不了解RxJava,但通过在线阅
文章目录一、RecyclerView数据绑定核心要点1、启用数据绑定/导入依赖2、RecyclerView条目DataBinding布局3、自定义RecyclerView.Adapter适配器要点(本博客重点★)二、RecyclerView数据绑定源码示例1、build.gradle构建脚本(启用数据绑定/导入依赖)2、主界面的Activity布局与组件(可不使用DataBinding)布局文件Activity组件的Kotlin代码3、自定义RecyclerView.Adapter数据类DataBinding布局RecyclerView.Adapter4、执行结果一、RecyclerView数
我正在尝试按照MVVM模式实现命令,但是我遇到了这种特殊情况。在XAML中,我将命令命令到列内的按钮:在我的ViewModel中,我宣布了一个委托书:Privatem_deleteRowCommandAsDelegateCommand(OfObject)PublicPropertyDeleteRowCommand()AsDelegateCommand(OfObject)GetReturnm_deleteRowCommandEndGetPrivateSet(ByValvalueAsDelegateCommand(OfObject))m_deleteRowCommand=valueEndSetEn
我在最近发布的“Android最佳实践”一书中读到,MVVM是用于Android编程的一个很好的设计模式。在我最近的项目中亲自尝试过,它似乎确实有助于将代码分成更易于管理的部分。View仅处理View项的创建和ViewModel的接口(interface)。ViewModel实现接口(interface)和处理View上的操作以及与模型的交互。示例代码如下:模型publicclassMyModel{publicStringmyString;publicMyModel(StringmyString){this.myString=myString;}}查看publicclassMyActi