Android 如何在observableField中变异传入字符串
我将以下字段绑定到editTextAndroid 如何在observableField中变异传入字符串,android,kotlin,rx-java,Android,Kotlin,Rx Java,我将以下字段绑定到editText val lastName = ObservableField(MutableLiveData<String>()) 我想我可以这样做来解决这个问题 lastName.getObservable() .subscribe { input -> val lastname = input.decapitalize() lastName.getField().postValue
val lastName = ObservableField(MutableLiveData<String>())
我想我可以这样做来解决这个问题
lastName.getObservable()
.subscribe { input ->
val lastname = input.decapitalize()
lastName.getField().postValue(lastname.capitalize())
}
我注意到这样做会让我陷入一个永恒的循环,因为每次postvalue都会触发订阅。如何通过RxJava对传入字符串进行变异,而不必像现在这样做?您可以通过覆盖
set
在源代码处执行此操作。我看不出多层可观察性的原因,所以我把它放在这里
val lastName = object: ObservableField<String>() {
override fun set(value: String) {
super.set(value.capitalize())
}
}
但这种多层结构在我看来很复杂。如果可以覆盖LiveData实例,我看不出您如何能够可靠地订阅底层数据
val lastName = object: ObservableField<String>() {
override fun set(value: String) {
super.set(value.capitalize())
}
}
val lastName = ObservableField(object: MutableLiveData<String>() {
override fun setValue(value: String) {
super.setValue(value.capitalize())
}
})