如何在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