问题标签 [android-architecture-components]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Android 架构组件:如何观察数据库中的单个更改
我有几个问题,请看下面的问题:
守则。
道
D b
模型视图
实体(科特林)
实时数据
问题一:
使用上面的代码,我的理解是我应该使用viewModel
. 我想使用 ViewModel,但在“观察”时没有得到任何数据,我该如何解决这个问题?
但这不会返回任何数据,而以下效果很好:
问题2 :
如果我使用这个:
如何观察数据库中的单个更改,例如删除行或添加新行?
java - 如何正确使用 Dagger2 和新的 Android 架构组件
我正在尝试使用新的架构组件,但我对 dagger 还是很陌生,而且我缺少一些东西。
使用下面的代码,我得到一个 NullPointerException,找不到位置。另外,如果我还有其他需要修复或改进的地方,请提出建议。
代码: 视图模型
存储库
辛格尔顿工厂
}
道
然后在 MainActivity 中:
日志猫:
android - 如何在扩展 LifecycleActivity 的视图中设置SupportActionBar
我有一个扩展 AppCompactActivity 的 Activity,并且在onCreate
方法中我以通常的方式设置了Toolbar
usingsetSupportActionBar
方法:
但是现在我有一个ViewModel组件,并且要在作为此活动的子项的片段之间共享数据并管理生命周期,我必须在 Activity 中获取此组件,因此我将其扩展为 LifecycleActivity。
但我注意到 LifecycleActivity 与 AppCompatActivity 无关,FragmentActivity 也没有。
难道我做错了什么?
android - Android Room:使用 Room 插入关系实体
我已经使用Relation在 Room 中添加了一对多关系。我参考这篇文章为 Room 中的关系编写了以下代码。
该帖子讲述了如何从数据库中读取值,但将实体存储到数据库中导致userId
为空,这意味着这两个表之间没有关系。
我不确定在有价值的同时进入数据库的理想insert
方式User
是List of Pet
什么userId
。
1) 用户实体:
2) 宠物实体:
3) UserWithPets POJO:
现在要从数据库中获取记录,我们使用以下命令DAO
:
编辑
我在问题跟踪器上创建了这个问题https://issuetracker.google.com/issues/62848977 。希望他们会为此做点什么。
android - Room - LiveData 观察者在数据库更新时不会触发
我试图在下面的代码中找出,为什么一旦我用新数据填充数据库,Room 的 LiveData observable 不会给我新的转变。
这是放在我活动的 onCreate 方法上的:
这是 populateAdapter 方法:
我还有以下填充数据库的代码(我使用 RxJava 在 IO 线程上完成工作,因为 Room 需要在主线程之外调用它的代码):
在我开始观察我的 shiftsViewModel 后调用persistShifts 时出现的问题。我希望我的观察者(LiveData)会被所有新添加的班次触发。事实证明,观察者被触发,但返回的是一个空的班次列表。使其“工作”的唯一方法是我离开活动(因此破坏当前的 ViewModel)并再次进入。这一次,viewModel 的 LiveData 为我提供了之前坚持的所有转变,正如预期的那样。
这是其余的代码:
道:
视图模型:
为什么我没有立即获得在 observe() 回调中坚持的班次列表?
android - 带有 Android Room 的可重用通用基类 DAO
有什么方法可以使用 Android Room 创建可重用的通用基类 DAO?
在不必声明相同的接口成员并为每个子类编写查询的情况下,我无法想出任何方法来实现这一点。当处理大量类似的 DAO 时,这变得非常乏味......
android - LiveData 和 LifecycleObserver 有什么区别
我已经阅读了android官方文档中关于生命周期和实时数据的文档。我知道该类实现了 LifeCycleObserver 并使位置侦听器自动关闭或打开。我也知道实时数据可以自动使其处于活动状态或不活动状态。我尝试使用这两种方式来实现 Location Observer。它可以工作,并且在更新位置时显示 Toast 2 次。
我的问题是,如果我真的想实现数据库连接、GPS 位置、下载图像、运行后台服务等功能,这两种方式有什么区别。我可以只使用 LiveData 类吗?因为我只需要实现主动和非主动功能。
LocationLiveData.java
MyLocationListener.java
组件活动.java
android - 无法导入 android.arch.persistence.room.testing.MigrationTestHelper
我已阅读Room Persistence Library。我还克隆了 android-architecture-components然后我尝试添加迁移测试。但是,我无法导入
我也使用最新的 lib 版本。
这是 MigrationTest 的代码
android - 为什么在片段重新创建时 onChange() 调用了两次
我正在尝试使用新的 android 架构组件,但我有一刻感到困惑。
我创建了一个 ViewModel 类
在我的 LifeCycleFragment 中观察 LiveData
但是当我用另一个 Fragment 替换这个 Fragment 并切换回这个 Fragment 时,该方法onChange
被调用了两次,并在rvAdapter
.
android - Android 房间数据库。如何将我的模型类添加到房间数据库中
我遇到了将模型类添加到 Room 数据库的问题。我读过@Relation、@Embedded,但我不知道如何处理我的模型类。
这里我的模型类来自服务器。我需要存储这些数据
FotosItem 类
BidsItem 类
如果有人告诉我需要做什么,或者至少要朝哪个方向前进,我将不胜感激