从带有视图的房间 android 中获取数据
Posted
技术标签:
【中文标题】从带有视图的房间 android 中获取数据【英文标题】:getting data from room android with view 【发布时间】:2021-12-31 00:17:41 【问题描述】:一周前,我学习了回收器视图,并且可以很好地使用 XML 布局中的适配器和片段以及硬编码数据或共享首选项,但现在我学习了房间数据库,我关注了谷歌开发者网站如何显示数据和一切,它对我不起作用我已经尝试了三天但没有结果。
RecyclerView recyclerView = findViewById(R.id.mainTaskView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(new TaskAdapter(tasks));
我正在尝试获取数据库中的所有项目,但它一直给我 null。
[关于创建代码][1] [1]:https://i.stack.imgur.com/Txtil.png
如果你想查看所有文件,这里是我的仓库。
我可以使用 allowQueriesInMainThread,但不建议这样做,因此我正在尝试实现房间和视图的最佳实践。
【问题讨论】:
【参考方案1】:你需要观察者getAllTask()
数据导致workThread中的数据查询,显示在mainThread中
您可以使用 Room @QUERY
函数查询数据并返回 LiveData。
@Query("SELECT * FROM tableName")
public LiveData<List<Entity>> getAllTask()
viewModel.getAllTask().observer(this,new Observer
@override
public void onChange(List<Entity> list)
adapter.setData(list)
adapter.notifyDataSetChanged()
)
我忘记了 java LiveData.observer。好像是这样的
【讨论】:
以上是关于从带有视图的房间 android 中获取数据的主要内容,如果未能解决你的问题,请参考以下文章
获取 android 房间数据库 java.lang.IllegalArgumentException 的以下异常:@androidx.room.Database 未定义元素视图()
带有 RxJava Single 的 Android Livedata 在房间数据库中不起作用