首页 > 解决方案 > 如何在没有参考的情况下在 Kotlin 中收听另一个类的一些 var

问题描述

当我使用 Java 开发 android 应用程序时,我使用了EventBus,然后我过去常常java.util.observable听一些 var 而没有获得类/服务的引用。例如,我可以在 ViewModel/Activity 中侦听来自服务的一些 var,而无需获取该服务的实例。

我在开始使用 Clean Architecture、SOLID、MVVM 等之前就这样做了。现在我广泛使用 LiveData 和 ViewModel 模式,以及 Dagger2 的依赖注入。所以,每次我有一个参考来听一个 LiveData var。

如果 Kotlin 中存在一种从另一个类中听一个类中的 var 而没有获得另一个类的参考的方法,我正在徘徊?

这不是实际问题,只是好奇

标签: androidkotlin

解决方案


要从变量中侦听数据,只需使用 LiveData。将变量包装在 LiveData 中,并使用观察者来观察数据的变化。此外,如果您的变量位于您不想为其创建对象的类中。然后你可以像这样简单地将该变量包装在伴随对象中。

class Test() {
  companion object {
    var testvariable = "Hello"
  }
}

然后像这样简单地调用它“Test.testvariable”


推荐阅读