Tag: rx binding

为什么只有最新的订阅者使用Kotlin和RxMVP才能在Android上的RxJava上进行下一个事件

鉴于以下情况: 以CheckBox和多个EditText为特色的View 该View使用杰克·沃顿的RxBinding来访问Observables 对象 fun observeUsername(): InitialValueObservable = RxTextView.textChanges(et_username) 对于EditText (有三个,用户名,密码和电子邮件)和 fun observeSignUpCheckBox(): InitialValueObservable = RxCompoundButton.checkedChanges(cb_sign_up) 为CheckBox Presenter每个EditText都有一个方法,就像 fun observeUsernameText(): Disposable { return view.observeUsernameText() .skipInitialValue() .map { username -> StringUtils.isValidUsername(username.toString()) } .subscribe({ view.setValidUsername(it) }) } 和CheckBox一个方法: fun observeSignUpCheckBox(): Disposable { return view.observeSignUpCheckBox() .subscribe({ checked -> Timber.d(“### view trigger”) }) } 所有这些方法都在Presenter的onCreate中调用,一切按预期工作。 现在的问题: 我在Presenter中添加了一个用于validation用户输入的新函数: fun observeInputFields(): […]

我应该在使用rxbinding时取消订阅吗?

有我如何使用Kotlin使用RxBinding: override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) reset_password_text_view.clicks().subscribe { presenter.showConfirmSecretQuestionBeforeResetPassword() } password_edit_text.textChanges().skip(1).subscribe { presenter.onPasswordChanged(it.toString()) } password_edit_text.editorActionEvents().subscribe { presenter.done(password_edit_text.text.toString()) } } Observable.subscribe(action)返回Subscription 。 我应该保留它作为参考和取消订阅onPause()或onDestroy() ? 喜欢这个: private lateinit var resetPasswordClicksSubs: Subscription override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) resetPasswordClicksSubs = reset_password_text_view.clicks().subscribe { presenter.showConfirmSecretQuestionBeforeResetPassword() } } override fun onDestroy() { super.onDestroy() resetPasswordClicksSubs.unsubscribe() […]

Observable.combine在kotlin中的最新类型推断

我在我的项目中使用了RxJava2,Kotlin-1.1和RxBindings。 我有简单的登录屏幕,默认情况下禁用“登录”按钮,我只想在用户名和密码edittext字段不为空时启用按钮。 LoginActivity.java Observable<Boolean> isFormEnabled = Observable.combineLatest(mUserNameObservable, mPasswordObservable, (userName, password) -> userName.length() > 0 && password.length() > 0) .distinctUntilChanged(); 我无法将上面的代码从Java翻译成Kotlin: LoginActivity.kt class LoginActivity : AppCompatActivity() { val disposable = CompositeDisposable() private var userNameObservable: Observable<CharSequence>? = null private var passwordObservable: Observable<CharSequence>? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_login) initialize() } fun initialize() { userNameObservable […]