Alexey Simchenko
Alexey Simchenko

Reputation: 460

How to listen some var from another class without reference in Kotlin

When I developed android app with Java I used EventBus , then I used java.util.observable to listen some var without getting a reference of a class/service. For example, I could listen in ViewModel/Activity some var from a service without getting instance of that service.

I did it before I started using Clean Architecture, SOLID, MVVM etc. Now I am using widely LiveData and ViewModel pattern, and Dependency Injection with Dagger2. So, every time I have a reference to listen a LiveData var.

I am wandering if exist in Kotlin a way to listen a var in one class from another class without getting an another class's reference?

This is not practical question, it's just curiosity

Upvotes: 1

Views: 888

Answers (1)

Baljeet
Baljeet

Reputation: 82

For listening to data from a variable just use LiveData. wrap your variable in LiveData and use an observer to observe data changes to it. Also if your variable is somewhere in a class which you don't want to create object of. Then you can simply wrap that variable in companion object like this.

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

then simply call it like this "Test.testvariable"

Upvotes: 1

Related Questions