override fun submitIntent(): Observable<Triple<Long, Long, String>> {
AlertOP.showPasswordVerificationDialog(requireContext(), object : GeneralDialogListener{
override fun onPositiveClick() {
}
override fun onNegativeClick() {
}
})
return binding.btnShareData.clicks().map {
binding.data?.let {
KeyboardOp.hide(requireActivity(), binding.etDataVolume)
Triple(selectedCreditAccountID, selectedBundleCreditID, it.dataVolume)
}
}
}
这里有一个问题,我想触发这个。
return binding.btnShareData.clicks().map {
binding.data?.let {
KeyboardOp.hide(requireActivity(), binding.etDataVolume)
Triple(selectedCreditAccountID, selectedBundleCreditID, it.dataVolume)
}
}
只有当 onPositiveClick
是用 RxJava
. 该 AlertOP.showPasswordVerificationDialog(...
是一个确认对话框。请大家帮忙,如果这个问题问得不好,请忽略。对不起。
所以在做了一些搜索之后,我能够通过使用以下方法来解决这个问题 PublishSubject
的 RxJava
下面是我更新的代码
private val verifyPasswordSubmitEventBridge = PublishSubject.create<Boolean>()
...
override fun submitIntent(): Observable<Triple<Long, Long, String>> {
binding.btnShareData.setOnClickListener {
AlertOP.showPasswordVerificationDialog(
requireContext(),
object : GeneralDialogListener {
override fun onPositiveClick() {
verifyPasswordSubmitEventBridge.onNext(true)
}
override fun onNegativeClick() {
verifyPasswordSubmitEventBridge.onNext(false)
}
})
}
return verifyPasswordSubmitEventBridge.filter { it }.map {
binding.data?.let {
KeyboardOp.hide(requireActivity(), binding.etDataVolume)
Triple(selectedCreditAccountID, selectedBundleCreditID, it.dataVolume)
}
}
}
现在,我能够实现所需的,在提交Intent时 ViewState
我现在可以显示一个确认 dialog
再往下 API
调用 RxJava