如何在Android中获取ObservableField的值

您好我有我的java代码中的这个ObservableField 。 我想通过调用get方法来获得它的价值。

 val email = ObservableField<String>() 

这可以使用下面的方法来完成。 我很困惑,不知道我应该在这里做一个getter来获得它的价值吗? 或者有不同的标准方法来获取ObservableField的值我也在我的应用程序中使用RxJava。

 fun login(view: View) { val emailVal = email.get() } 

我认为使用email.get()已经足够了。 如果你真的想在你的代码中使用.get() ,你可以使用backing字段:

 val _email = ObservableField<String>() var email: String get() = _email.get() set(value) = _email.set(value) //use fun login(view: View) { val emailVal = email } 

这正是代表团的意思。 Kotlin中一个属性的委派意味着拥有一个实现了运算符函数getValue和可选的setValue ,在访问或更新属性时会调用它。

你的委托可能是这样的:

 class <T> ObservableDelegate { val field = ObservableField<T>() operator fun getValue(self: Any?, prop: KProperty<*>) : T = field.get() operator fun setValue(self: Any?, prop: KProperty<*>, value: T) = field.set(value) } 

然后你可以像这样使用委托:

 val email : String by ObservableDelegate() fun login(view: View) { val emailVal = email } 

阅读更多关于属性的授权: https : //kotlinlang.org/docs/reference/delegated-properties.html