问题描述
@Dao
interface DataDao {
@Query("SELECT * FROM DataTable ORDER BY `order`")
fun listenToAll():Flowable<List<DaTaroomEntity>>
}
var dataDao: DataDao
fun listenToDataDb(): Flowable<Data> = dataDao.listenToAll()
.map { convertEntitiesToData(it) }
fun getData(){
//var disposable: disposable? = null
var disposable = listenToDataDb()
.subscribe({ data ->
// do something with data
disposable?.dispose() //<== disposable is unresolved
},{ throwable ->
disposable?.dispose(). //<== disposable is unresolved
})
}
}
但是如果先定义 var disposable: disposable = null
就可以了
fun test(){
var disposable: disposable? = null
disposable = listenToDataDb()
.subscribe({ data ->
// do something with data
disposable?.dispose() //<=== it is fine
},{ throwable ->
disposable?.dispose()
})
}
如果不先定义它为什么会出现 unresolved
错误?
解决方法
A android:onClick='@{(v) -> viewModel.subjectRequest(faqTitleAbout.getText().toString())}'
是 Observable 和 Observer 之间的流或链接。您可以像下面这样全局声明
Disposable
然后
lateinit var disposable: Disposable