我有以下代码
fun fetchUsersNumber(): Int {
subscriptions.add(mRepository.getCount()
.subscribeOn(Schedulers.io())
.subscribe {
count -> view?.updateNumber(count)
})
}
在我的mRepository.getCount()中,我返回一个
override fun getCount(): Single<Int> {
return mDao.getCount()
}
我的DAO就像:
@Query("SELECT COUNT(*) FROM users)
fun getCount(): Single<Int>
我的View只是具有Int参数的方法。
fun updateNumber(count: Int) {
// display user number
}
我的问题是: -我想返回我的计数值。我怎样才能做到这一点?因为在我的活动中,我会有类似的东西:
textView.text = presenter.fetchUserNumber()
答案 0 :(得分:1)
您的演示者将使用其生命周期方法处理订阅,并将订阅结果发送给updateNumber()
。应用onError
处理失败的事件,并在视图中调用另一个方法来提醒用户。
fun updateNumber(count: Int) {
textView.text = count
}
答案 1 :(得分:1)
很简单,您无需执行任何操作,演示者将为您服务。您只需要调用您的方法并检查结果,即可获得所需的返回值。就像JakeB所说的那样,如果OnError失败,则必须应用它。
fun fetchUsersNumber(): Int {
subscriptions.add(mRepository.getCount()
.subscribeOn(Schedulers.io())
.subscribe (
{ count -> view?.updateNumber(count) },
{ // your Error here }
)
)
}