Ребята, привет. Надеюсь, кто-нибудь прочитает эту простыню и поможет мне, вы моя последняя надежда, сижу уже 2 дня.
Мне нужно заполнить выпадающий список, используя Room и RxJava и MVVM.
ViewModel фрагмента выглядит так:
fun getData(): Single<List<Kotlin>> {
return dataSource.getAll()
}
В фрагменте делаю так:
private fun prepareDataList() {
viewModel.getData()
.subscribeOn(
Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : SingleObserver<List<Kotlin>> {
override fun onSuccess(t: List<Kotlin>) {
kotlinDataList = t
}
override fun onSubscribe(d: Disposable) {}
override fun onError(e: Throwable) {}
})
}
kotlinDataList должен заполнится данными, далее я их рассовываю по вьюхе выпадающего списка.
Проблема в том, что лист ВНЕ onSuccess всегда пустой, данные генерируются внутри onSuccess, но не выходят наружу.
При дебагинге данные не выходят наружу и в конце бесконечно горит "application is running".
Я все перегуглил, испробовал и всякие Flowable, Maybe и еще кучу приемов, пересмотрел все примеры, которые нашел в гугле, не могу понять, что у меня не так.