当前位置: 首页 > 知识库问答 >
问题:

如何通过ViewModels获取viewModel?(片段-KTX)

宇文学博
2023-03-14

我使用单个viewModel来处理活动和它的所有片段。

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        viewModel = ViewModelProviders.of(activity!!).get(NoteViewModel::class.java)
    }
    // 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>()
    //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时,却找不到它们的引用。

我想要帮助如何使用这些扩展的一些基本的例子,我尝试搜索的例子没有找到任何。

共有1个答案

柴砚文
2023-03-14

最后我们得到了稳定版本。

在转移到实现'androidx.fragment:fragment-ktx:1.1.0'之后,我遇到了另一个问题。

无法将用JVM目标1.8构建的字节码内联到正在用JVM目标1.6构建的字节码中

compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }

引用

应用以上所有方法后,问题就解决了。

 类似资料:
  • 我需要观察Modelview中的livedata更改来更新片段(将列表添加到RecycerView中)。 该实现工作正常,但在片段之间切换时面临问题。 并试图将观察者移除为:或或或尝试在

  • 这就是我在每个片段中获取viewmodel的方法。(我不想发布所有其他无关的代码)

  • 我有一个带有“x”个片段的视图寻呼机,第一个是“HomeFragment”:它包含2个下拉列表(微调器) 其他片段(FragmentA、FragmentB、FragmentC等)的UI会根据这些微调器的选定项值进行更改 因此,问题是:如何从“HomeFragmet”中的微调器传递此选定项值以用于其他片段?

  • 我试图制作一个方法,获取封闭实例中的任何字段,对于一对2D坐标(其字段名以“X”结尾)的任何“X”组件具有整数值。 但我在编译器中得到的只是: 方法将这样使用: 我做错了什么?

  • 问题内容: 我创建了一个简单的注释类: 我在像这样的一些类中使用它: 我知道我可以遍历声明的字段并获得如下注释: 如何在不迭代类的声明字段的情况下直接通过带注释的名称获取字段? 问题答案: 如果需要进行多次访问,则可以预处理注释。

  • 问题内容: 我在Java中有一个对象(基本上是VO),但不知道其类型。 我需要获取在该对象中不为null的值。 如何才能做到这一点? 问题答案: 你可以用来获取该类的所有声明的字段。你可以用来获取价值。 简而言之: 要了解有关反射的更多信息,请查看有关该主题的Sun教程。 就是说,这些字段不一定全部代表VO的属性。你希望确定以或开头的公共方法,然后调用它以获取真实属性值。 也就是说,可能会有更优雅