问题标签 [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.

0 投票
5 回答
49776 浏览

android - Android Room 加入的返回类型

假设我想INNER JOIN在两个实体之间Foo做一个Bar

是否可以强制这样的返回类型?

当我尝试这样做时,我收到此错误:

我还尝试为表名起别名以匹配字段名,但这也不起作用。

如果这是不可能的,我应该如何干净地构造一个兼容的返回类型,其中包括两个实体的所有字段?

0 投票
2 回答
1270 浏览

android - Kotlin, proguard, Android 架构组件

我有一个带有实时数据变量的视图模型。

我的活动会观察它以更新 UI。

在调试中,一切运行良好。当我启用 proguard 时,它不再观察 livedata 的变化。

我已检查实时数据是否已正确更新。但是,观察者回调永远不会被调用。

有关如何配置 Proguard 以及可能出现什么问题的任何提示?

我尝试保留我的包的类但没有成功:

这是视图模型:

和活动:


编辑:依赖

0 投票
2 回答
1917 浏览

android - 如何使用 Android Room Persistence Library 实现多对多关系?

如何使用 Android Room Persistence Library 实现多对多关系?

一位用户可能拥有一台或多台设备,而一台设备可能由一位或多位用户拥有。

用户设备

0 投票
1 回答
628 浏览

android - 旋转屏幕时保留具有片段范围的 ViewModel

我们正在使用支持库v 25.+和新的架构组件v 1.0.0-alpha3,并且我们认识到片段范围的 ViewModel 没有正确保留:

viewModel 基本上在应用程序每次旋转时都会重新创建。这可以通过更改onActivityCreated为在谷歌示例中使用来解决。由于文档指出要使用,onCreate我希望这是一个片段或ViewModelProvider错误。

0 投票
3 回答
3470 浏览

android - LiveData 不会将数据从一个 Activity 更新到另一个 Activity - Android

我有 2 个Activity

  1. 列表Activity
  2. 细节Activity

列表Activity显示项目列表,Activity单击列表中的项目会显示详细信息。在ListActivity我们观察从数据库中获取提要的过程中,一旦我们这样做了,我们就会更新 UI。

列表页面

现在我们有一个DetailActivity更新提要(项目)并Activity完成的页面,但更改未反映在ListActivity.

详情页面

提要视图模型

为简单起见,一些代码已被抽象出来。如果需要,我可以添加它们以跟踪问题

0 投票
1 回答
1357 浏览

android - Android 架构组件:如何插入存储库参数

在 viewmodel 类中,我看到了构造函数将存储库作为参数接收的示例代码。像这样:

public SampleViewModel(SampleRepository sampleRepository){ ... }

但是在活动中,您使用这一行来创建一个 viewmodel 类ViewModelProviders.of(this).get(SampleViewModel.class)。如何将存储库作为参数传递给视图模型?我还提到过“依赖注入”。作为一个没有经验的程序员,如果 DI 与我的问题有关,任何人都可以提出建议吗?

0 投票
0 回答
167 浏览

android - 在布局膨胀之前触发 MutableLiveData 的观察者

我有一个MainActivity包含NavigationView抽屉菜单的。的NavigationView标头包含一个TextView我想用一些用户信息填充的。问题是,有时应用程序会在onChanged方法中崩溃,NullPointerException因为textUsernameis null。我的猜测是这是因为布局还没有完全膨胀。我已经实现了null检查(如下面的代码所示),这显然textUsername在大多数情况下只会导致空白。

我的onCreate方法如下所示:

在从回调中访问该布局之前,如何确保该布局已膨胀?谢谢。

编辑

activity_main.xml

activity_main_content.xml

drawer_menu_header.xml

0 投票
1 回答
1856 浏览

android - 从存储库返回 LiveData

这个示例存储库有一个方法public LiveData<Resource<List<Repo>>> loadRepos(String owner)

https://github.com/googlesamples/android-architecture-components/blob/master/GithubBrowserSample/app/src/main/java/com/android/example/github/repository/RepoRepository.java

我的问题是为什么将 Android API(即android.arch.lifecycle.LiveData)添加到数据层中?

将框架 API 与您的数据/实体混合在一起不是反清洁架构吗?

现在还不需要使用 Robolectric 进行单元测试RepoRepository吗?

0 投票
1 回答
832 浏览

android - 在 Room 数据库库中将 Enum 作为主键时出错

我使用枚举作为带有 TypeConvertor 的 Room 数据库库的主键,它不会在运行时编译并抛出错误

这是我的转换器

这里道

这是模块

这是房间数据库

错误信息

0 投票
1 回答
1465 浏览

android - 房间数据库架构实体扩展错误

在使用 android Room 时,我有以下实体:

一切都很好。但现在我希望我的 pojo (Call.class) 扩展一个抽象类,如下所示:

我收到以下错误:

父级 (BaseViewTypeData.class) 是一个简单的类,用于处理回收器视图中的多种视图类型。