问题标签 [android-livedata]
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 AndroidViewModel 和 LiveData 的正确方法
我在我的项目中实现了 LiveData,但我对此有点困惑。它有效,但我不知道这是正确的方法。
我的实时数据类:
我的 ViewModel 类
我在我的 MainActivity 中使用它,如下所示:
在我的模拟测试用例中,我首先从数据库中删除所有客户端,然后从原始 json 加载一些客户端,然后将它们保存到数据库中。在我可以像这样从 AlertDialog 添加新客户端之后:
正如我写的那样,它工作正常,在我从 AlertDialog 添加新客户端后,适配器会更新。但是,如果有人确认此实现是使用 ViewModel 和 LiveData 的正确方法,那就太好了。谢谢
android - 为什么在片段重新创建时 onChange() 调用了两次
我正在尝试使用新的 android 架构组件,但我有一刻感到困惑。
我创建了一个 ViewModel 类
在我的 LifeCycleFragment 中观察 LiveData
但是当我用另一个 Fragment 替换这个 Fragment 并切换回这个 Fragment 时,该方法onChange
被调用了两次,并在rvAdapter
.
android - 我应该已经使用 Google 架构组件了吗?
我开始从头开始构建一个应用程序,并且正在决定我应该使用什么架构和工具来开始,因为这些决定通常也会长期影响我们。
在 Google IO '17 中,他们刚刚发布了架构组件,即 LiveData、Room(for SQLite)、ViewModel 和 LifecycleOwners & LifecycleObservers。与我以前的应用程序相比,我发现这些组件是一个很大的优势。但是由于这些组件仍处于alpha阶段,我现在在我的 android 项目中使用这些组件是否是一个好习惯,或者我应该坚持使用已经存在的 3rd 方 ORM 而不是 Room 并使用不同的机制来更新数据比 LiveData 并等待几个月让他们发布相同的稳定版本?他们通常需要多长时间才能将其转换为稳定版本?
非常感谢!
android - 如何在 mvvm android 中显示对话框
显示一个对话框,在 MVVM 中启动活动是一个视图责任。
在视图中,您有一个 VM 实例,但在 VM 中您没有视图实例。所以解决方案是使用实时数据并在视图中观察,对吗?
但是我不想使用实时数据呢?当我无权查看时如何显示对话框?
android - Android 架构组件 LiveData 数据变化
我已经开始研究最近引入的 android 架构组件。
我的问题是我只想要最后添加的元素而不是数据库中所有项目的列表,其次我想知道为新模型自动生成的 id,在插入元素时获取该 id 的最佳方法是什么。
android - Robolectric 测试和 LiveData
为了同时掌握 Kotlin、LiveData 和 Robolectric,我做了一个简单的闪屏活动。
它在运行应用程序时可以正常工作,但在测试中无法正常工作。这就像实时数据的回调永远不会被触发,或者就像没有为其注册观察者一样。
这是测试:
活动:
视图模型(无论如何都会被嘲笑,因此不使用实现):
java - 房间 - 未触发 LiveData
我正在尝试使用 Room 数据库和 LiveData。我有 ViewModel,其中包含他们从 dao 获得的 LiveData。如果我更新 a Transaction
,则LiveData<List<Transaction>>
可以观察到,但LiveData<Transaction>
根本没有观察到。这怎么可能?我究竟做错了什么?
有类似的问题,它提到了使用非@Singleton
注释类时的 Dagger 并发症,不幸的是,这不是我的问题,即使我使用 Dagger。
android - LiveData 不会将数据从一个 Activity 更新到另一个 Activity - Android
我有 2 个Activity
即
- 列表
Activity
- 细节
Activity
列表Activity
显示项目列表,Activity
单击列表中的项目会显示详细信息。在ListActivity
我们观察从数据库中获取提要的过程中,一旦我们这样做了,我们就会更新 UI。
列表页面
现在我们有一个DetailActivity
更新提要(项目)并Activity
完成的页面,但更改未反映在ListActivity
.
详情页面
提要视图模型
为简单起见,一些代码已被抽象出来。如果需要,我可以添加它们以跟踪问题
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
吗?