当前位置: 首页 > 知识库问答 >
问题:

房间未返回livedata的结果

颜楚青
2023-03-14
 @Query("SELECT * FROM transaction_table")
  LiveData<List<MyTransaction>> getAllTransactions();

  @Query("SElECT * FROM transaction_table")
  List<MyTransaction> getMyTransaction();

getAllTransactions()调用运行时没有异常,但不返回结果。另一方面,getMyTransactions()返回select查询结果。

在viewModel:mylivedata=repository中。getAllTransactions()

在活动中:

 mViewModel!!.myLiveData.observe(this, Observer<List< MyTransaction >> { repositories: List< MyTransaction > ->
})

共有1个答案

柳飞飙
2023-03-14

问题是这个mylivedata=repository。getAllTransactions()部分在创建ViewModel实例时完成。

在开始观察MyLiveData之前,查询结果已经发布。

您应该做的是在viewmodel中创建一个方法

fun getAllTransactions():LiveData<List<MyTransaction>> {
  return repository. getAllTransactions();
}
mViewModel!!.getAllTransactions().observe(this, Observer<List< MyTransaction >> { repositories: List< MyTransaction > ->
//your code goes here
})
 类似资料:
  • 在viewmodel类中获取数据方法

  • 我正在使用带有MVVM模式的干净体系结构,所以房间部分进入数据层,我将观察结果从那里返回到域层,并通过将它们包装在LiveData中在表示层中使用它们。现在的问题是,在插入/删除/更新列表之后,UI中的列表不会立即更新。 演示层中的Viewmodel: 数据层中的DAO: 数据层中的存储库: 域层中的GetAllWordsUseCase: 域层中的UseCase基类: 最后,表示层中的单词活动 谁

  • 我正在为EJB服务开发一个REST-facade,这意味着它调用EJB,将结果转换为REST调用者将理解的表示,然后返回它(作为json或xml)。所有这些都非常出色。但是EJB服务抛出了各种异常,例如,当没有找到结果或其他一些不同的情况下。因为我不希望那些传播到REST调用者,所以我实现了一个ExceptionMapper: 我的EJB服务中的所有异常都以,此映射程序可以很好地捕获它,原因是应用

  • 此示例存储库有一个方法 现在不需要使用Robolectric来单元测试了吗?

  • 在我的Android项目中,我使用Room库来处理SQLite数据库。我使用我的数据库来保存国家电话代码。我的数据库预加载了两个国家(watch大众数据库与国家代码(道:电话代码道)功能); 国家代码实体 DAO接口 在我的应用程序中,我按顺序选择国家代码(观察函数selectCountryCodeByOrder(order:Int):Int)。我在异步{}协同例程中异步调用此函数。但我有一个相当

  • 我正在创建,比如说,15个Callable任务,并提交它们: 然后我收集15个MyResult对象: 问题是:我没有从get()方法获得所有15个MyResult对象,而是有时获得不到15个对象。有时12有时10有时甚至更少,有时全部15。 我的印象是,方法是一个阻塞调用,将等待所有15个线程返回各自的结果,但看起来我错过了其中的一些线程并继续前进。我做错了什么?我是否未正确收集结果/等待结果?当