android - 如何在没有参考的情况下在 Kotlin 中收听另一个类的一些 var
问题描述
当我使用 Java 开发 android 应用程序时,我使用了EventBus,然后我过去常常java.util.observable
听一些 var 而没有获得类/服务的引用。例如,我可以在 ViewModel/Activity 中侦听来自服务的一些 var,而无需获取该服务的实例。
我在开始使用 Clean Architecture、SOLID、MVVM 等之前就这样做了。现在我广泛使用 LiveData 和 ViewModel 模式,以及 Dagger2 的依赖注入。所以,每次我有一个参考来听一个 LiveData var。
如果 Kotlin 中存在一种从另一个类中听一个类中的 var 而没有获得另一个类的参考的方法,我正在徘徊?
这不是实际问题,只是好奇
解决方案
要从变量中侦听数据,只需使用 LiveData。将变量包装在 LiveData 中,并使用观察者来观察数据的变化。此外,如果您的变量位于您不想为其创建对象的类中。然后你可以像这样简单地将该变量包装在伴随对象中。
class Test() {
companion object {
var testvariable = "Hello"
}
}
然后像这样简单地调用它“Test.testvariable”
推荐阅读
- casting - 为什么找不到 dyn Any 类型的 downcast_ref 方法?
- python-3.x - 使用 Python Boto3 AWS Lambda,S3 Key LastModified 以两种不同的方式返回两种类型
- php - 如何将立即购买按钮添加到具有隐藏添加到购物车按钮的产品中?
- python - Kafka 消费者应该是 Django Web 层的一部分还是单独的服务?
- python - Maxout 激活函数 - 在 NumPy 中实现前向和反向传播
- mysql - 我在查询生成器 SYMFONY 中有问题
- vue.js - 如何在 vue-cli 中使用 proxyTable 进行跨源请求?
- ruby-on-rails-4 - 使用评论员 gem 时解决具有现有订阅模型的应用程序
- mysql - 两个表联合的分页结果
- autohotkey - 切换开/关时,while循环无法正确执行