草庐IT

viewmodel

全部标签

android - ViewModel 能否在 Activity 保存和恢复后继续存在?

如果以下列方式使用,新的ViewModel类的实例可以在配置更改后继续存在:mViewModel=ViewModelProviders.of(this).get(MyViewModel.class);但是,除了配置更改之外,还存在整个应用程序进程被杀死时的保存-恢复场景。ViewModel中的字段值是否会在保存-恢复场景中保留?编辑:基于对这个问题的回答,我写了这篇文章:AndroidViewModelArchitectureComponentisDangerous 最佳答案 根据ViewModelProvider文档(检查get方

android - 无法创建自定义 ViewModel 的实例

我正在使用dagger2库。每当我尝试运行我的项目时,都说无法创建View模型类的实例。我尝试创建实例的主要Activity((MovieApplication)getApplication()).getAppComponent().inject(this);mViewModel=ViewModelProviders.of(this).get(MoviesDataViewModel.class);我的工厂类publicclassViewModelFactoryimplementsViewModelProvider.Factory{privateMoviesDataViewModelmV

android - 我应该如何在 Android 的 viewModel 中获取 Resources(R.string)(MVVM 和数据绑定(bind))

我目前正在为android使用databinding和MVVMarchitecture。在ViewModel中获取字符串资源的最佳方式是什么。我没有使用新的AndroidViewModel组件、eventbus或RxJava我正在经历接口(interface)的方法,其中Activity将负责提供资源。但是最近我发现了一个类似的问题this回答使用应用程序上下文的单个类在哪里提供所有资源。哪种方法更好?或者我可以尝试其他方法吗? 最佳答案 您可以通过实现AndroidViewModel而不是ViewModel来访问上下文。class

json - 如何序列化/反序列化 Kotlin 密封类?

我有以下密封类:sealedclassViewModel{dataclassLoaded(valvalue:String):ViewModel()objectLoading:ViewModel()}我如何序列化/反序列化ViewModel类的实例,比如JSON格式?我尝试使用Genson序列化器/反序列化器库-它可以处理Kotlin数据类,还可以支持多态类型(例如,使用一些元数据来指定具体类型)。但是,库在Kotlinobject类型上失败,因为这些是没有公共(public)构造函数的单例。我想我可以编写一个自定义的Genson转换器来处理它,但也许有更简单的方法来做到这一点?

json - 如何序列化/反序列化 Kotlin 密封类?

我有以下密封类:sealedclassViewModel{dataclassLoaded(valvalue:String):ViewModel()objectLoading:ViewModel()}我如何序列化/反序列化ViewModel类的实例,比如JSON格式?我尝试使用Genson序列化器/反序列化器库-它可以处理Kotlin数据类,还可以支持多态类型(例如,使用一些元数据来指定具体类型)。但是,库在Kotlinobject类型上失败,因为这些是没有公共(public)构造函数的单例。我想我可以编写一个自定义的Genson转换器来处理它,但也许有更简单的方法来做到这一点?

android - 如何使用 ViewModel 和 Databinding 实现验证?

使用ViewModel和数据绑定(bind)验证表单数据的最佳方法是什么?我有一个简单的注册Activity,它链接绑定(bind)布局和ViewModelclassStartActivity:AppCompatActivity(){privatelateinitvarbinding:StartActivityBindingprivatelateinitvarviewModel:SignUpViewModeloverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)viewMode

android - 如何使用 ViewModel 和 Databinding 实现验证?

使用ViewModel和数据绑定(bind)验证表单数据的最佳方法是什么?我有一个简单的注册Activity,它链接绑定(bind)布局和ViewModelclassStartActivity:AppCompatActivity(){privatelateinitvarbinding:StartActivityBindingprivatelateinitvarviewModel:SignUpViewModeloverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)viewMode

Android 架构组件 ViewModel - 如何在测试 Activity 上模拟 ViewModel?

我正在尝试设置类似于GithubBrowserSample的UI测试,看起来示例项目只有Fragment的模拟ViewModel但没有Activity的示例。这是我试图通过模拟ViewModel来测试Activity的代码。但是ViewModel没有在Activity中的onCreate()之前设置。@RunWith(AndroidJUnit4::class)classMainActivityTest{valviewModel=mock(MainViewModel::class.java)@Rule@JvmFieldvalactivityRule=ActivityTestRule(Ma

Android 架构组件 ViewModel - 如何在测试 Activity 上模拟 ViewModel?

我正在尝试设置类似于GithubBrowserSample的UI测试,看起来示例项目只有Fragment的模拟ViewModel但没有Activity的示例。这是我试图通过模拟ViewModel来测试Activity的代码。但是ViewModel没有在Activity中的onCreate()之前设置。@RunWith(AndroidJUnit4::class)classMainActivityTest{valviewModel=mock(MainViewModel::class.java)@Rule@JvmFieldvalactivityRule=ActivityTestRule(Ma

android - 如何在 androidTest 上正确模拟 ViewModel

我目前正在为fragment编写一些UI单元测试,其中一个@Test是查看对象列表是否正确显示,这不是集成测试,因此我希望mockViewModel。fragment的变量:classFavoritesFragment:Fragment(){privatelateinitvaradapter:FavoritesAdapterprivatelateinitvarviewModel:FavoritesViewModel@InjectlateinitvarviewModelFactory:FavoritesViewModelFactory(...)代码如下:@MediumTest@RunWi