lifecycle-viewmodel-ktx
全部标签 这个问题在这里已经有了答案:AndroidViewModelvsViewModel(4个答案)关闭4年前。我一直在研究Android架构组件,它是在GoogleIO2017中引入的他们提供的一个避免配置更改问题的组件ViewModel和AndroidViewModel类根据文档:AndroidViewModel:应用上下文感知ViewModelViewModel:ViewModels也可以用作Activity的不同Fragment之间的通信层。每个Fragment可以获得ViewModel通过他们的Activity使用相同的key但对于AndoirdViewModel场景我可以通过将类
在真实设备上(Nexus5、Leeco、小米等).observe方法有效,但是当我在Firebase测试实验室开始测试时,应用程序在很多设备上启动时崩溃并出现异常(虚拟Nexus10和22api):java.lang.RuntimeException:UnabletostartactivityComponentInfo...Causedby:java.lang.NullPointerException:Attempttoinvokevirtualmethod'android.arch.lifecycle.Lifecycle$Stateandroid.arch.lifecycle.Lif
我正在研究Android+Kotlin,做一个简单的例子来理解LiveData+ViewModel。非常简单:我有一个根Activity和两个fragment。FragmentOne有两个EditText。对这些值求和,我需要将结果传递给ViewModel。然后我在根Activity和FragmentTwo中使用观察来查看更改的数据。fragment一classFragmentOne:Fragment(){privatevalmodelbylazy{ViewModelProviders.of(activity).get(MyViewModel::class.java)}varresul
问题有一个设置屏幕(SettingsActivity),其中包含大约10个文本字段和3个按钮。在onClick上打开对话框以插入/编辑文本的文本字段将其内容保存在SharedPreferences中。这些按钮执行异步请求以检索内容并保存在其他地方。在请求期间,会显示一个对话框以通知进度。初步解决方案数据存储库基本上是SharedPreferences的包装器,它有10个getter和10个setter,每个字段一个。在get[field_name]上,DataRepository从SharedPreferences获取值,在set[field_name]上,它提交给SharedPref
当我将core-ktx依赖项添加到我的应用程序的build.gradle文件时,我的gradle构建失败并显示错误消息AAPT2error:checklogsfordetails它还指出values.xml中缺少两个属性。此文件位于我的用户目录中的.gradle文件夹下。当我将android.enableAAPT2=false添加到我的项目属性时,由于该选项已被弃用,构建失败,所以我想避免这种情况。两个resourcenotfound错误的错误描述如下:error:resourceandroid:attr/fontVariationSettingsnotfound.Message{ki
我知道,如果我在Activity或Fragment中订阅一个可观察对象,我应该将它绑定(bind)到它们各自的生命周期,使用rxlifecycle-componentsorrxlifecycle-navi.但是,我现在从ViewHolder(扩展RecyclerView.ViewHolder)内部订阅一个可观察对象,我担心如果View被销毁而订阅保持Activity状态会发生什么。我应该将此可观察对象绑定(bind)到哪个生命周期以及如何绑定(bind)? 最佳答案 RecyclerView.Adapter有一个方法onViewRe
ViewModel介绍ViewModel是Jetpack组件之一,用于帮助管理UI数据和处理设备配置变化。它允许在应用程序的不同组件之间共享和管理数据,并且可以帮助避免内存泄漏和减少对生命周期的依赖。ViewModel通常用于存储和管理与UI相关的数据,例如界面上的文本、列表数据等。它可以存活于Activity或Fragment的生命周期之外,并且在设备配置变化时保持数据的一致性。在使用ViewModel时,通常需要创建一个继承自ViewModel的子类,并在其中定义需要共享和管理的数据。然后在Activity或Fragment中通过ViewModelProvider来获取ViewModel的
一些错误如java.lang.RuntimeException:Unabletodestroyactivity{xxxxxx}:java.lang.IllegalStateException:Can'taccessViewModelsfromonDestroy 最佳答案 查看Android源代码,它检查在尝试获取ViewModel时支持的FragmentManager是否被破坏。打电话ViewModelProviders.of(this).get(ViewModel::class.java)会到达privatestaticHolde
我有一个名为RecipesViewModel的ViewModel。通常,我这样实例化它:RecipesViewModelviewModel=ViewModelProviders.of(this,newViewModelProvider.Factory(){@OverridepublicTcreate(ClassmodelClass){return(T)newRecipesViewModel(recipesRepository);}}).get(RecipesViewModel.class);但现在我使用的是dagger2,所以我在这个ViewModel的构造函数上添加了一个@Injec
我正在努力思考新的Android架构组件,特别是ViewModel。我的印象是Fragment不应该知道它属于哪个Activity或Fragment,以便它可以在应用程序的不同上下文中使用。这些示例似乎通过直接在Fragment中而不是Fragment所有者中声明ViewModel范围来与此相矛盾:viewModel=ViewModelProviders.of(getActivity()).get(SomeViewModel.class);我希望能够在Master/Detail配置中使用此Fragment,其中两者共享相同的状态(即ViewModel实例),以及在ViewPager内部