我正在为 Activity 及其所有片段使用 Single viewModel。
所以要初始化viewmodel
如果必须编写此设置代码onActivityCreated
所有片段的
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProviders.of(activity!!).get(NoteViewModel::class.java)
}
我正在浏览 Android KTX 扩展页面:(参考这里 https://developer.android.com/kotlin/ktx#fragment)
我发现我可以像这样初始化视图模型:
// Get a reference to the ViewModel scoped to this Fragment
val viewModel by viewModels<MyViewModel>()
// Get a reference to the ViewModel scoped to its Activity
val viewModel by activityViewModels<MyViewModel>()
所以我将以下依赖项添加到我的 gradle(app) 中:
//ktx android
implementation 'androidx.core:core-ktx:1.0.2'
implementation 'androidx.fragment:fragment-ktx:1.0.0'
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
但是当我尝试使用viewModels/activityViewModels
在我的应用程序中找不到他们的参考。
我需要有关如何使用这些扩展程序和一些基本示例的帮助,我尝试搜索示例但没有找到任何示例。
最后我们有了稳定版本。
搬到后implementation 'androidx.fragment:fragment-ktx:1.1.0'
我面临另一个问题。
编译器错误:
无法将使用 JVM 目标 1.8 构建的字节码内联到以下字节码中
使用 JVM 目标 1.6 构建
build.gradle
(模块:app
)
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
kotlinOptions {
jvmTarget = "1.8"
}
参考 https://stackoverflow.com/a/56996020/7972699
应用上述所有内容后,问题得到解决。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)