- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个测试 Activity 来更新 MyViewModel 中的一些文本。
我想在 中观察这些变化 fragment ,但是当我使用
MyViewModel myViewModel = new ViewModelProvider(this).get(MyViewModel.class);
onChanged()
fragment 中的回调未被调用。
HomeViewModel homeViewModel = new ViewModelProvider(getActivity()).get(HomeViewModel.class);
onChanged()
被成功调用。
getActivity()
因为 ViewModelStoreOwner 是正确的做事方式,因为我在任何地方的任何示例中都没有看到这一点。我想知道在这种情况下是否应该使用更好的 ViewModelStoreOwner ?
最佳答案
I'm wondering if there might be a better ViewModelStoreOwner I should be using in this instance?
activity
用于在同一 Activity 中的 fragment 之间共享同一实例的实例。
getViewModelStore()
方法。
getViewModelStore()
提供
ViewModelStore
用于存储
viewmodel
的实例对象,由
ViewModelProvider
创建.
ViewModelStoreOwner
接口(interface)和
FragmentActivity
(AppCompatActivity 的父级)继承了实现。
ViewModelStoreOwner
的具体实现。接口(interface)方法并按照
lifecycle
存储 View 模型实例对象(包括配置更改)。
getActivity()
将导致使用
ViewModelStoreOwner
Activity 的对象。要在 fragment 之间共享对象,只需使用 Activity 实例创建
ViewModelProvider
这将使用相同的
ViewModelStoreOwner
因此在所有 fragment 中将返回
viewmodel
的持久对象(如果之前创建)。
关于android - fragment 中的 ViewModelProvider 使用什么 ViewModelStoreOwner?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61373456/
我看到两个名称相似的类,ViewModelProviders 和 ViewModelProvider。任何人都可以解释这些类(class)之间的区别是什么?哪个类实际提供了 ViewModel? 最佳
我正在尝试创建可感知生命周期的 View 模型。但是我在我的 Android 项目中找不到 ViewModelProviders 类,只有 ViewModelProvider。似乎也没有 androi
我目前正在将我的项目架构从 MVP 转换为 MVVM。当我在研究它时,我发现有些事情让我感到困惑: 在项目iosched的ScheduleViewModelFactory.kt中,工厂实现ViewMo
由于所说的贬值,我不再使用 ViewModelProviders.of(this)。我研究了其他问题并使用了答复中的代码。所有代码都没有错误,但当我尝试运行该应用程序时,出现异常。 此处发生错误。 P
我有一个在我的“MainActivity.java”上启动的模型,其名称如下: //MainActivity.java (public class MainActivity extends AppCo
我正在研究 Android ViewModel 架构组件,但在尝试在 AppCompatActivity 中初始化 ViewModel 时出现上述错误。 import android.arch.lif
“ViewModelProviders”已从 androidx.lifecycle:lifecycle-*:2.2.0-alpha03 中弃用 https://developer.android.co
我想重新使用 ViewModel 和 LiveData 从 Firebase 读取节点。这是我在 Fragment 中的代码 FirebaseDatabaseViewModel tes
我正在尝试使用 View 模型,但是遇到了一个奇怪的错误,编译器说它无法识别“of”。我已经在我的 build.gradle 中导入了依赖项并像这样同步 def ver = "1.1.1" impl
我使用 ViewModelProviders。但是今天,更新库后,有30条消息。据我所知,ViewModelProviders 不再可用,您需要替换它,我查看了 developer.google,但不
我正在尝试遍历 google tutorial on building good ap architecture .我正在使用 Java 8 和 SDK 26。这是我到目前为止的代码: package
我试图通过将我的一些 ViewModel 实例移动到一个抽象基类中来减少 Dagger 的一些样板,但找不到一个很好的方法来做到这一点。我的 Intent 是从我的基本 fragment 中实例化我的
ActivityViewModels 和惰性 ViewModelProvider 的区别? 我见过两种初始化 View 模型的方法: private val someViewModel: SomeVi
为什么我应该为 View 模型使用 viewmodelproviders? 为什么我不能将自定义单例注释添加到我的 View 模型中,然后将此 View 模型注入(inject) fragment 类
这就是我正在努力做的事情。 在 Fragment 内设置对象的 ArrayList 从 FragmentActivity 中的观察者获取该数组容器(承载所有 fragment 的 Activity)
我相信我正在遵循为我提供的用于建立 ViewModelProvider.Factory 的代码示例。它发生在 OnAttach 方法的 CheckInRecentList 代码中的这条语句上。我们将不
关于过去的问题How to get a ViewModel? ,以及我发现的例子,它并不能解决我的问题。我没有在那里发表评论的权限,所以我不得不再次询问。我没有 ViewModelProviders
我是 Kotlin 的新手,请帮助我如何在 Kotlin 中使用 ViewModelProviders.of(this) 我的java代码是 mFavViewModel = ViewModelPro
嘿,我正在尝试让我的 ViewModel 工作,但到目前为止还没有运气。Android Studio 显示错误 Cannot resolve symbol 'ViewModelProviders'。
我很高兴使用新的 Android 架构组件 ViewModel 系统,它很好地将 Activity/Fragment/Layout 渲染问题与 ViewModel 逻辑分开。我已经成功地对 ViewM
我是一名优秀的程序员,十分优秀!