gpt4 book ai didi

android - 如何通过viewModels获取viewModel? ( fragment -ktx)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:01:16 26 4
gpt4 key购买 nike

我正在为 Activity 及其所有 fragment 使用 Single viewModel。

所以要初始化 viewmodel 如果必须在所有 fragment 的 onActivityCreated 中编写此设置代码

    override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProviders.of(activity!!).get(NoteViewModel::class.java)
}

我正在浏览 Android KTX 扩展页面:( refer here )

我发现我可以像这样初始化 View 模型:

    // 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' 之后,我遇到了另一个问题。

###编译器错误:

Cannot inline bytecode built with JVM target 1.8 into bytecode that isbeing built with JVM target 1.6

###build.gradle(模块:应用程序)

compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}

kotlinOptions {
jvmTarget = "1.8"
}

reference

应用以上所有内容后,问题就解决了。

关于android - 如何通过viewModels获取viewModel? ( fragment -ktx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56748334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com