问题标签 [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.
android - Android Room 加入的返回类型
假设我想INNER JOIN
在两个实体之间Foo
做一个Bar
:
是否可以强制这样的返回类型?
当我尝试这样做时,我收到此错误:
我还尝试为表名起别名以匹配字段名,但这也不起作用。
如果这是不可能的,我应该如何干净地构造一个兼容的返回类型,其中包括两个实体的所有字段?
android - Kotlin, proguard, Android 架构组件
我有一个带有实时数据变量的视图模型。
我的活动会观察它以更新 UI。
在调试中,一切运行良好。当我启用 proguard 时,它不再观察 livedata 的变化。
我已检查实时数据是否已正确更新。但是,观察者回调永远不会被调用。
有关如何配置 Proguard 以及可能出现什么问题的任何提示?
我尝试保留我的包的类但没有成功:
这是视图模型:
和活动:
编辑:依赖
android - 旋转屏幕时保留具有片段范围的 ViewModel
我们正在使用支持库v 25.+
和新的架构组件v 1.0.0-alpha3
,并且我们认识到片段范围的 ViewModel 没有正确保留:
viewModel 基本上在应用程序每次旋转时都会重新创建。这可以通过更改onActivityCreated
为在谷歌示例中使用来解决。由于文档指出要使用,onCreate
我希望这是一个片段或ViewModelProvider
错误。
android - LiveData 不会将数据从一个 Activity 更新到另一个 Activity - Android
我有 2 个Activity
即
- 列表
Activity
- 细节
Activity
列表Activity
显示项目列表,Activity
单击列表中的项目会显示详细信息。在ListActivity
我们观察从数据库中获取提要的过程中,一旦我们这样做了,我们就会更新 UI。
列表页面
现在我们有一个DetailActivity
更新提要(项目)并Activity
完成的页面,但更改未反映在ListActivity
.
详情页面
提要视图模型
为简单起见,一些代码已被抽象出来。如果需要,我可以添加它们以跟踪问题
android - Android 架构组件:如何插入存储库参数
在 viewmodel 类中,我看到了构造函数将存储库作为参数接收的示例代码。像这样:
public SampleViewModel(SampleRepository sampleRepository){
...
}
但是在活动中,您使用这一行来创建一个 viewmodel 类ViewModelProviders.of(this).get(SampleViewModel.class)
。如何将存储库作为参数传递给视图模型?我还提到过“依赖注入”。作为一个没有经验的程序员,如果 DI 与我的问题有关,任何人都可以提出建议吗?
android - 在布局膨胀之前触发 MutableLiveData 的观察者
我有一个MainActivity
包含NavigationView
抽屉菜单的。的NavigationView
标头包含一个TextView
我想用一些用户信息填充的。问题是,有时应用程序会在onChanged
方法中崩溃,NullPointerException
因为textUsername
is null
。我的猜测是这是因为布局还没有完全膨胀。我已经实现了null
检查(如下面的代码所示),这显然textUsername
在大多数情况下只会导致空白。
我的onCreate
方法如下所示:
在从回调中访问该布局之前,如何确保该布局已膨胀?谢谢。
编辑
activity_main.xml
:
activity_main_content.xml
:
drawer_menu_header.xml
:
android - 从存储库返回 LiveData
这个示例存储库有一个方法public LiveData<Resource<List<Repo>>> loadRepos(String owner)
我的问题是为什么将 Android API(即android.arch.lifecycle.LiveData
)添加到数据层中?
将框架 API 与您的数据/实体混合在一起不是反清洁架构吗?
现在还不需要使用 Robolectric 进行单元测试RepoRepository
吗?
android - 在 Room 数据库库中将 Enum 作为主键时出错
我使用枚举作为带有 TypeConvertor 的 Room 数据库库的主键,它不会在运行时编译并抛出错误
这是我的转换器
这里道
这是模块
这是房间数据库
错误信息
android - 房间数据库架构实体扩展错误
在使用 android Room 时,我有以下实体:
一切都很好。但现在我希望我的 pojo (Call.class) 扩展一个抽象类,如下所示:
我收到以下错误:
父级 (BaseViewTypeData.class) 是一个简单的类,用于处理回收器视图中的多种视图类型。