问题标签 [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 投票
2 回答
210 浏览

android - Room 的 JavaDocs 在哪里?

Room 听起来很有趣,但我在Android 开发者网站的 JavaDocs中找不到任何类,因为它们在搜索时没有出现。JavaDocs 是否可用于 Room?

0 投票
2 回答
2402 浏览

java - 缺少类 LiveDataReactiveStreams

我正在尝试使用新的 Android 架构组件。我想使用 LiveDataReactiveStreams 将 Rx Flowable 转换为 LiveData,缺少该类。

这是我的依赖项:

compile "android.arch.lifecycle:runtime:1.0.0-alpha1" compile "android.arch.lifecycle:extensions:1.0.0-alpha1" kapt "android.arch.lifecycle:compiler:1.0.0-alpha1"

有任何想法吗?

0 投票
2 回答
3214 浏览

android - 网络pojo类和数据库实体类,如何避免重复

对不起,如果怀疑太概念化,我有点缺乏经验......

我通过改造从 URL 获取 JSON 数据,并且我还想将这些数据存储在我的 SQLite 数据库中。为了创建这个数据库,我将使用新的 Room ORM 映射。

我使用 Android Studio 插件 GsonFormat 提取网络 POJO 类,它生成下面的食谱、成分和步骤类。并生成一些房间实体类(更多下文)

如您所见,两组类几乎相同,带来了大量重复代码。但我也觉得这两组类混合使用并不好。并且 Room 禁止实体对象相互引用,所以如果我想使用第一组类,那就更复杂了……

我的疑问是这些案件一般是如何处理的?

--- Pojo - Gson 可以理解:

--- 房间实体类

0 投票
3 回答
62921 浏览

android - AndroidViewModel 与 ViewModel

随着 Android 架构组件库的引入,引入了几个新类,包括AndroidViewModelViewModel. 但是,我无法弄清楚这两个类之间的区别。该文档简洁地描述AndroidViewModel如下:

应用程序上下文感知ViewModel

我很欣赏简洁,但这究竟意味着什么?我们什么时候应该选择使用AndroidViewModelover ViewModel,反之亦然?

0 投票
4 回答
17551 浏览

android - Android ViewModel LiveData 在按钮单击时更新视图

我正在按照本教程学习 ViewModel 和 LiveData。就我而言,我不是从网络获取数据,而是在按钮单击时生成随机字符串并尝试更新文本视图。问题是当通过按钮单击更改数据时文本视图不会更新,但仅在切换方向时才会更新。

Activity 类(扩展 LifecycleActivity)

视图模型类

0 投票
21 回答
56972 浏览

android - Android ViewModel 没有零参数构造函数

我正在关注文档以了解 LiveData 和 ViewModel。在文档中, ViewModel 类具有这样的构造函数,

但是,当我运行代码时,出现异常:

引起:java.lang.RuntimeException:无法创建类UserViewModel的实例引起:java.lang.InstantiationException:java.lang.Class没有零参数构造函数

0 投票
5 回答
83977 浏览

android - 如何从后台服务更新 ViewModel 的 LiveData 并更新 UI

最近我正在探索谷歌最近推出的 Android 架构。从文档中我发现了这个:

活动可以按如下方式访问此列表:

我的问题是,我要这样做:

  1. loadUsers()函数中我异步获取数据,我将首先检查数据库(房间)中的数据

  2. 如果我没有在那里获取数据,我将调用 API 从 Web 服务器获取数据。

  3. 我会将获取的数据插入数据库(房间)并根据数据更新 UI。

推荐的方法是什么?

如果我开始Service从该loadUsers()方法调用 API,我该如何更新MutableLiveData<List<User>> users变量Service

0 投票
7 回答
36579 浏览

android - How to handle error states with LiveData?

The new LiveData can be used as a replacement for RxJava's observables in some scenarios. However, unlike Observable, LiveData has no callback for errors.

My question is: How should I handle errors in LiveData, e.g. when it's backed by some network resource that can fail to be retrieved due to an IOException?

0 投票
2 回答
5288 浏览

android - 带有 MVP 的 Android 架构组件

谷歌 IO 17 上发布了新的 Android 架构组件。

那么我们应该将 MVP 与架构组件和 MVVM 一起使用吗?

在 Github 上的 google 示例中,他们使用了 MVVM 模型。 谷歌示例

0 投票
2 回答
4952 浏览

android - Android 房间 - 在字符串中搜索

在 Android Rooms 持久性库中,我将如何将以下 SQL 语句编写为 @Query?

SELECT * FROM table WHERE field LIKE %:value%

此语法无效,我在文档中找不到任何有关它的信息。