- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一些 kotlin fundamentals 的代码实验室而且我并没有真正使用 ViewModel 进入 android,为什么有时似乎需要通过 ViewModelFactory 创建它。 Here你可以看到codelab其中谈到了这一点。
他们只是说使用 factory method pattern 执行初始化但我不明白为什么。为什么我们需要使用工厂模式?是因为我们需要向 ViewModel 传递一些参数吗?还是出于其他原因?每次我们需要创建一个 ViewModelFactory 只是为了将参数传递给 ViewModel 吗?
我一直在寻找答案,试图确认是只是传递额外的参数还是因为任何其他原因,但我仍然不确定,我还没有找到答案。
最佳答案
在使用 ViewModel
之前需要考虑一些事项和 ViewModelFactory
ViewModel
是 LifecycleAware Components
. ViewModel
生存configuration
变化。 ViewModelProvider' can only instantiate
ViewModel` 没有参数的构造函数。 Why do we need to use factory pattern?
ViewModel
带参数需要使用
ViewModelFactory
.
ViewModelProviders
实用程序无法使用参数构造函数创建 ViewModel 的实例,因为它不知道如何以及在构造函数中传递什么对象。
public class LogInViewModel extends ViewModel {
private final LogInRepo repo;
public LogInViewModel (LogInRepo repo) {
/* this.repo = new LogInRepo(); Not recommended, It violates DI principle*/
this.repo = repo;
}
}
关于android - ViewModelFactory 需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61044315/
我第一次尝试安卓ViewModel和 Hilt DI 正如我从下面的链接了解的那样,要在运行时使用值初始化 ViewModel,我应该使用 ViewModelFactory Use a ViewMod
我正在做一些 kotlin fundamentals 的代码实验室而且我并没有真正使用 ViewModel 进入 android,为什么有时似乎需要通过 ViewModelFactory 创建它。 H
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我正在尝试在 ViewModel 类中传递一个构造函数参数。但我不明白这样做的最佳方法。请看一下代码和评论,让我知道最简单和合适的方法。 class MainActivity : AppCompatA
我正在尝试在我的 Activity 和我的 fragment 之间共享一个 ViewModel。我的 ViewModel 包含一个 report,这是一个我无法序列化的复杂对象。 protec
我正在尝试在 MVVM 架构中使用 Dagger2、Rxjava2、Retrofit2 设计一个应用程序。我在模型(存储库)类中得到响应,我想将其传递给我的 ViewModel,为此我必须设计自己的
我正在使用著名的 Dagger-ViewModelFactory 模式来为所有 ViewModel 注入(inject)工厂。在所有的 Activity 中。 @ActivityScope class
现在,当我尝试在我的设备中运行我的应用程序时显示此错误 Caused by: kotlin.UninitializedPropertyAccessException: lateinit propert
我复制了一个带有 Android 架构组件、Retrofit、Dagger 和数据绑定(bind)的 MVVM 示例。我将此代码用作我的应用程序的起点,以便开始在 Android 应用程序开发中使用更
我在我的 android 项目中使用 dagger 2(2.15 版)进行依赖注入(inject)。除了注入(inject) viewModelFactory 之外,一切正常。我无法将它注入(inje
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
所以我正在使用 Dagger 开发一些示例 MVVM 项目。我有一个像这样的 View 模型工厂: class DaggerViewModelFactory @Inject constructor(p
我用 MVVM 模式开发应用程序。我想在用户旋转屏幕时保存 UI。 MyViewModel.kt class MyViewModel(val repository: SomeRepository,
与此问题相关:Espresso, Dagger2 set ViemodelProvider.Factory on BaseActivity 在我的测试期间,为了让 espresso 测试在 Andro
我使用 Jetpack Compose 和导航 compose,我想将 id 传递给 viewmodel : class RecallViewModel(private val id:Long,app
我想知道以下两种方法中哪一种更适合我的 Android 应用程序及其原因。 第一个是使用viewmodelfactory模式,第二个是viewModelStoreProvider。谁能阐明这些方法?
我试着效仿谷歌的例子(ViewModelModule)。我看到它可以将不同的 ViewModel 类型绑定(bind)到通用类型。 @Module abstract class ViewModelMo
我最近开始从事 Android 开发,并且来自 iOS 背景,依赖注入(inject)框架和 ViewModelFactories 等概念对我来说是一个新事物。在我看到的所有教程中,ViewModel
到目前为止,我遵循 Android 开发人员指南了解架构组件,当然,问题是他们的示例无法与默认工厂一起使用,原因是“无零参数异常”。我遵循了 Google 示例存储库上的一些逻辑,以及相当多的 Sta
我是一名优秀的程序员,十分优秀!