如何获取 android 中 ObservableField 的值
How to get value of the ObservableField in android
您好,我的 java 代码中有这个 ObservableField
。我想获取它的值,这可以通过对其调用 get
方法来完成。
val email = ObservableField<String>()
这可以使用以下方法完成。我很困惑,不知道我应该在这里做一个 getter 来获得它的价值吗?或者有不同的标准方法来获取 ObservableField
我也在我的应用程序中使用 RxJava。
fun login(view: View) {
val emailVal = email.get()
}
我觉得用email.get()
就够用了。如果你真的想在你的代码中消除 .get()
的使用,你可以使用支持字段:
val _email = ObservableField<String>()
var email: String
get() = _email.get()
set(value) = _email.set(value)
//use
fun login(view: View) {
val emailVal = email
}
这正是授权的意义所在。在 Kotlin 中委派 属性 意味着有一个 class 实现运算符函数 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
您好,我的 java 代码中有这个 ObservableField
。我想获取它的值,这可以通过对其调用 get
方法来完成。
val email = ObservableField<String>()
这可以使用以下方法完成。我很困惑,不知道我应该在这里做一个 getter 来获得它的价值吗?或者有不同的标准方法来获取 ObservableField
我也在我的应用程序中使用 RxJava。
fun login(view: View) {
val emailVal = email.get()
}
我觉得用email.get()
就够用了。如果你真的想在你的代码中消除 .get()
的使用,你可以使用支持字段:
val _email = ObservableField<String>()
var email: String
get() = _email.get()
set(value) = _email.set(value)
//use
fun login(view: View) {
val emailVal = email
}
这正是授权的意义所在。在 Kotlin 中委派 属性 意味着有一个 class 实现运算符函数 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