草庐IT

lifecycle-viewmodel-ktx

全部标签

使用 Dagger 2的Android生命周期库ViewModel

我有一个ViewModel类,就像Architectureguide的连接ViewModel和存储库部分中定义的类。.当我运行我的应用程序时,我得到一个运行时异常。有谁知道如何解决这个问题?我不应该注入(inject)ViewModel吗?有没有办法告诉ViewModelProvider使用Dagger来创建模型?publicclassDispatchActivityModelextendsViewModel{privatefinalAPIapi;@InjectpublicDispatchActivityModel(APIapi){this.api=api;}}Causedby:jav

android - 从 ViewModel 观察 LiveData

我有一个单独的类,我在其中处理数据获取(特别是Firebase),我通常从中返回LiveData对象并异步更新它们。现在我想将返回的数据存储在ViewModel中,但问题是为了获得所述值,我需要观察从我的数据获取类返回的LiveData对象。观察方法需要一个LifecycleOwner对象作为第一个参数,但我的ViewModel中显然没有该对象,而且我知道我不应该在ViewModel中保留对Activity/Fragment的引用。我该怎么办? 最佳答案 在thisblogpostGoogle开发人员JoseAlcérreca建议在

java - 在 Fragment LifeCycle 期间何时调用 onAttach?

这个问题在这里已经有了答案:WhyisonAttachcalledbeforeonCreate?(4个回答)关闭6年前.onAttach在Fragment-Activity生命周期中究竟何时被调用?我知道fragment生命周期,但具体是什么时候?是在启动fragment对象的时候还是在调用fragmentmanager的时候? 最佳答案 在Activity中,第一个方法是onCreate。Activity的onCreate添加fragment,此时调用onAttach。和图片一样引用:https://github.com/xxv/

java - 摆脱 org.eclipse.m2e :lifecycle-mapping 的 POM 未找到警告

为了让m2e1.0正常工作,我必须指定生命周期映射:org.eclipse.m2elifecycle-mapping1.0.0org.bsc.mavenmaven-processor-plugin[2.0.2,)process但后来我收到了这个警告:[WARNING]ThePOMfororg.eclipse.m2e:lifecycle-mapping:jar:1.0.0ismissing,nodependencyinformationavailable[WARNING]Failedtoretrieveplugindescriptorfororg.eclipse.m2e:lifecycl

android - 如何在不绑定(bind)到 ViewModel (MVVM) 中的 UI 的情况下使用 android 导航?

我正在使用在GoogleI/O2018上展示的android导航,我似乎可以通过绑定(bind)到某个View或使用NavHost从Fragment获取它来使用它。但我需要的是根据几个条件从我的第一个fragment从ViewModel导航到另一个特定View。对于ViewModel,我扩展了AndroidViewModel,但我不明白下一步该怎么做。我无法将getApplication转换为Fragment/Activity,也无法使用NavHostFragment。此外,我不能只将导航绑定(bind)到onClickListener,因为startFragment只包含一个Imag

android - Kotlin + Dagger - 为 ViewModel 工厂注入(inject) Map

我正在使用带有Dagger2的新架构组件,我想使用工厂类注入(inject)我的ViewModel。Factory类本身是可注入(inject)的。当Factory类在Java中定义时,这一切都很好,但是当我将它转换为Kotlin时,Dagger2不知道如何为构造函数生成Map,而在Java中它知道如何生成。我认为不同之处在于,转换后,Factory类使用kotlin包中的Map,而不是java.util.Map包中的Map。如何让Dagger2为Factory构造函数生成map?这是工厂类@ActivityScopeclassMainActivityViewModelFactory@

android - 无法解析 : androidx. 生命周期 :lifecycle-viewmodel-ktx:1. 1.1

我正在尝试使用适用于android的新导航架构组件,但出现错误无法解决:androidx.lifecycle:lifecycle-viewmodel-ktx:1.1.1当我将生命周期版本定义为“1.1.1”时我基本上只是在复制和粘贴文档中的内容,所以我对这里的问题已经没有想法了:(applyplugin:'com.android.application'applyplugin:'kotlin-android'applyplugin:'kotlin-android-extensions'applyplugin:'kotlin-kapt'android{compileSdkVersion2

android - 谷歌身份验证迁移到 androidx : SignInHubActivity does not implement Lifecycle

迁移到AndroidX后,我遇到了GoogleAuthlib的以下问题:在Android9API28上:java.lang.IncompatibleClassChangeError:Class'com.google.android.gms.auth.api.signin.internal.SignInHubActivity'doesnotimplementinterface'androidx.lifecycle.LifecycleOwner'incallto'androidx.lifecycle.Lifecycleandroidx.lifecycle.LifecycleOwner.ge

android - 使用 Dagger 2 + Kotlin + ViewModel 注入(inject) ViewModel

classSlideshowViewModel:ViewModel(){@InjectlateinitvarmediaItemRepository:MediaItemRepositoryfuninit(){Whatgoeshere?}所以我正在尝试学习Dagger2,以便让我的应用更易于测试。问题是,我已经集成了Kotlin并且正在开发Android架构组件。我知道构造函数注入(inject)更可取,但这对于ViewModel是不可能的。相反,我可以使用lateinit来注入(inject),但我不知道如何注入(inject)。我需要为SlideshowViewModel创建一个Com

android - 警告 : warning: Supported source version 'RELEASE_7' from annotation processor 'android.arch.lifecycle.LifecycleProcessor' less than -source '1.8'

尝试使用带有架构组件和Kotlin的AndroidStudio3Canary5构建示例会出现此警告。谁能告诉我原因?谢谢,欧维编辑#1:这是DanLew不久前制作的样本https://github.com/dlew/android-architecture-counter-samplebuild.gradle:applyplugin:'com.android.application'applyplugin:'kotlin-android'applyplugin:'kotlin-kapt'android{compileSdkVersion25buildToolsVersionrootPr