我在Livedata上使用了Room和RxJavaSingle
,但它不起作用<我试了两种方法。我不知道为什么第二个有效,为什么第一个无效。
(1)按单条获取列表-
道
@Dao
interface DiaryDao {
@Query("SELECT * FROM Review")
fun getAllReview() : Single<List<Review>> // <- See the return type!
}
ViewModel我使用了Repository模式(dao的返回类型和Repository的返回类型相同)
private val _reviewData = MutableLiveData<List<Review>>()
val reviewData : LiveData<List<Review>>
get() = _reviewData
fun getAllReview(){
addDisposable(repo.getAllReview()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
_reviewData.value=it
},{
Log.d(TAG, it.localizedMessage)
})
)
}
碎片
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewModel.getAllReview()
viewModel.reviewData.observe(viewLifecycleOwner) {
...
}
}
它在创建片段时工作,但数据在更改时不更新。
道
@Dao
interface DiaryDao {
@Query("SELECT * FROM Review")
fun getAllReview() : LiveData<List<Review>> // <- See the return type!
}
视图模型
private val _reviewData : LiveData<List<Review>> = repo.getAllReview()
val reviewData : LiveData<List<Review>>
get() = _reviewData
碎片
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewModel.reviewData.observe(viewLifecycleOwner) {
// it works!
}
}
当数据发生变化时,它工作得很好。
我期待你的建议。
请让我知道,如果有任何额外的代码,你想看到。
单身
我正在尝试使用RxJava在后台线程上使用我的RoomDatabase。 我的DAO类: 我的实体类(为简洁起见省略了getter和setter方法): 最后,这里是我的MeasurementDatabase类: 在我的片段中,我试图在单击菜单项后插入背景线程: 最终测量数据库appDb= 我收到一个错误,说: 我的RxJava代码中缺少了什么,没有将进程放在后台线程上?
所以我需要从插入函数中取回插入项目的ID。包括来自Google的消息来源在内的多个消息来源都表示,可以通过作为@插入带注释DAO函数的返回值的单执行此操作。不幸的是,编译总是以以下方式退出: 我试着改成也许 我的代码如下所示: 我完全不知道是什么导致了这一切。那么,我做错了什么?如果这只是一个bug,那么在我的活动和这个活动数据的上下文中获取id的解决方法是什么? 更新:找到了一个非常奇怪的解决方
我想用Rxjava使用ROOM,以下是我的代码: 我的数据库结构类: 这是我的ProductDAO课程: 这是我用于创建和管理数据库的数据库类: 这是我处理数据库的活动: 下面是发生的情况,当我第一次启动我的activity类时,没有发生错误,当我从emulator下载创建的数据库并在sqlite数据库管理器中打开它时,问题是文件是空的,没有创建数据库 当我回去重新打开数据库时,我得到了很多错误:
IIS可能会搞砸它?我倾向于认为IIS对于和)有不同的进程,因此,我在app.post上引用的套接字与我在()中加入用户是不同的。 在Azure/IIS中使用socket.io房间时有什么提示吗?谢了!
房间数据库在mac book pro m1中不工作,我已经添加了id“kotlin kapt” android studio控制台日志的屏幕截图 哪里出错了:任务': app: kaptDebugKotlin'执行失败。 执行org.jetbrains.kotlin.gradle.internal时出错。KaptWithoutKotlincTask$KaptExecutionWorkAction
我正在尝试获取消息的地图,作者id键如下: 这是我尝试过的: MessageViewModel.getAll()方法返回: 然后我将其转换为一个可流动的流(Flowable::fromIterable),这样它可以一次发出一个项目,而不是整个列表,然后我使用“toMultiMap”进行映射 on成功方法从不被调用,我不知道这里出了什么问题。如果我不使用toMultiMap(并对代码进行相应的修改)