我有一个可变的实时数据,用于调整布局中的可见性(使用绑定(bind)适配器)。我使用实时数据的 bool 值通过下面的代码实现这一点。
@BindingAdapter("viewVisibility")
fun setVisibility(view: View, visible: Boolean) {
view.visibility = if (visible) View.VISIBLE else View.GONE
}
为了获取这些数据,我使用了以下方法
Flowable.just(
Sdk().searchContact(CHATBOT_NAME)).map {!(it.isEmpty()) }
it.isEmpty() 给了我一个 Flowable < Single< Boolean>> 而不是 Flowable 我想把这个 Single 转换成一个 bool 值(把它作为我的绑定(bind)适配器的参数)但是我找不到方法转换它。我的临时(可能不好)解决方案如下。
it.blockingLast().isEmpty() // Blocking last gives me a list so I can get non-single boolean with isEmpty. Since I need one element from search contact method blocking last or first works same in this case.
这是一个可以接受的解决方案吗?如何将 Single 转换为普通 bool 值?
最佳答案
又是我,试试下面的代码:
fun doesExist(): Flowable<Boolean> {
return Flowable.just(Single.just(Sdk().searchContact(CHATBOT_NAME)).map{ it.isEmpty()}).map {it.blockingGet() }
}
关于android - 将 Single<Boolean> 转换为 Boolean (Kotlin),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53098138/