问题标签 [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 架构组件的资源
我通过将以下行添加到 build.gradle 应用到我的项目 Android 架构组件:
它有效,但是在将 Android Studio 更新到 Canary 3 版本后,我在编译时仍然遇到此错误
错误:org.gradle.api.resources.ResourceException:无法获取资源“ https://jitpack.io/android/arch/lifecycle/runtime/1.0.0-alpha1/runtime-1.0.0-alpha1.pom ”。
错误:org.gradle.api.UncheckedIOException:无法 HEAD ' https://jitpack.io/android/arch/lifecycle/runtime/1.0.0-alpha1/runtime-1.0.0-alpha1.pom '。从服务器收到状态码 401:未授权
...来自库的其他 pom 具有相同的错误。
我尝试重新启动 Android Studio,卸载应用程序,当然还有 clean-rebuild。
android - 当列名相同时,如何表示与 Android Room 的“多对多”关系?
我如何表示与 的“多对多”关系Room
?我的列名也一样。
例如我有Guest
和Reservation
。Reservation
can have many Guest
's 和 aGuest
可以是许多 Reservations 的一部分。
这是我的实体定义:
在查看文档时,我遇到了@Relation
. 我发现它真的很混乱。
据此,我想创建一个 POJO 并在那里添加关系。因此,在我的示例中,我执行了以下操作:
上面我得到编译器错误:
我无法找到@Relation
.
android - Android kotlin 和 Room Persistences 库未构建
我正在尝试将 Room 与 kotlin 一起使用,但没有任何效果,它会抛出以下内容:
在我的 Build.Gradle 类中,我有以下内容(乱序但所有重要信息都在这里)
我的模块类
我的道课
我错过了什么或做错了什么?
android - LifecycleObserver is not working
Observer methods are not being called. I tested ViewPagerCycler
as in old school ways and working perfect. Thanks for help.
Activity is just summarized. I didn't add findViewById
s.
In the build.gradle
:
android - 有了 Android 的新架构组件,savedInstanceState 重要吗?
阅读 Android 的新架构组件,建议使用各种 ViewModel 实例将数据提供给活动和片段。
还有从单个持久模型驱动数据的概念:
第二个重要原则是您应该从模型驱动您的 UI,最好是持久模型。持久性是理想的原因有两个:如果操作系统破坏您的应用程序以释放资源,您的用户不会丢失数据,并且即使网络连接不稳定或未连接,您的应用程序也将继续工作。模型是负责处理应用程序数据的组件。它们独立于应用程序中的视图和应用程序组件,因此它们与这些组件的生命周期问题隔离。
还有一个类似的单一事实来源的概念:
在此模型中,数据库充当单一事实来源,应用程序的其他部分通过存储库访问它。无论您是否使用磁盘缓存,我们都建议您的存储库将数据源指定为应用程序其余部分的唯一真实来源。
在我看到的代码示例中,它们确实将 savedInstanceState 包传递给超类的实现,例如:
但是,我们的活动似乎没有理由再显式地将重要值存储到/从已保存实例状态中获取/检索。
savedInstanceState 与新架构无关吗?
android - Android 架构组件生命周期状态
https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.State.html
STARTED Lifecycle.State STARTED 对于一个Activity,有两种情况会达到这个状态:onStart调用后;在 onPause 调用之前。
正如上面的文档所说,在 onPause 调用之前,我无法理解 STARTED 状态背后的基本原理。有人可以解释一下吗?
android - LiveData.getValue() 使用 Room 返回 null
Java POJO 对象
我的查询方法
访问数据库
在下一行,我正在检查sections.getValue()
哪个总是给我 null,尽管我在数据库中有数据,后来我得到了onChanged()
方法中的值。
但是当我从查询中省略 LiveData 时,我得到了预期的数据。查询方法:
访问数据库:
android - AppCompatActivity、ViewModel 和数据绑定
试图弄清楚谷歌最近的工具和概念:LifecycleActivity、ViewModel和Data Binding。
所以想象有一个FooActivity
扩展AppCompatActivity
(能够使用支持库)并实现LifecycleOwner
接口(来自参考:需要使用 LiveData):
FooActivity.kt:
我们设置绑定:
我们设置活动的ViewModel
,并附加我们的barObserver
(它应该观察bar
内部的变化ViewModel
,这只是一个List
)Strings
:
最后我们定义barObserver
:
问题:
- 为什么
Observers
onChange
从来不触发? - 应该使用
LifeCycleOwner``getLifecycle
而不是使用Observer
吗? - 还有其他想法吗?
编辑: 作为参考状态:
LiveData 是一个可以在给定生命周期内观察到的数据持有者类。这意味着观察者可以与 LifecycleOwner 成对添加,并且只有当配对的 LifecycleOwner 处于活动状态时,才会通知该观察者包装数据的修改。如果 LifecycleOwner 的状态为 STARTED 或 RESUMED,则认为 LifecycleOwner 处于活动状态。通过 observeForever(Observer) 添加的观察者被视为始终处于活动状态,因此将始终收到有关修改的通知。对于那些观察者,您应该手动调用 removeObserver(Observer)。
改变:
enter code here
viewModel.getBars()?.observe(this, barObserver)
到:
viewModel.getBars()?.observeForever(barObserver)
没有把戏。onChange
仍然没有触发。
编辑2:
FooActivity.kt:
替换为:
FooView 模型:
android - 房间持久性:错误:实体和 Pojos 必须有一个可用的公共构造函数
我正在将一个项目转换为 Kotlin,并且我正在尝试使我的模型(这也是我的实体)成为我打算使用 Moshi 来转换来自 API 的 JSON 响应的数据类
我无法构建应用程序导致以下错误
实体和 Pojos 必须有一个可用的公共构造函数。您可以有一个空的构造函数或参数与字段匹配的构造函数(按名称和类型)。找不到字段的设置器。
关于如何解决它的想法?
java - 如何在 RecyclerView Adapter 中使用架构组件 ViewModel?
我有多个 ViewHolders,它们在垂直 RecyclerView 中作为单独的视图工作。我正在使用新的架构组件 ViewModel 进行练习。
在我的 ViewModel 中,我有几个想要观察的 MutableLiveData 列表,但是我该如何调用
和
不泄漏活动或将活动保存在适配器内?
我的视图模型