128得票10回答
从ViewModel观察LiveData

我有一个专门处理数据获取的类(具体来说是Firebase),通常我会从中返回LiveData对象并异步更新它们。现在我想将返回的数据存储在ViewModel中,但问题是为了获取该值,我必须观察从我的数据获取类返回的LiveData对象。观察方法需要一个LifecycleOwner对象作为第一个...

116得票9回答
如何使用导航架构组件从片段中获取结果?

假设我们有两个片段:MainFragment和SelectionFragment。第二个是用于选择某个对象,例如整数。接收来自此第二片段的结果有不同的方法,如回调、总线等。 现在,如果我们决定使用导航架构组件来导航到第二个片段,我们可以使用以下代码:NavHostFragment.findN...

116得票30回答
方法是哪个?“不确定如何将游标转换为此方法的返回类型”的房间:

Error:Not sure how to convert a Cursor to this method's return type Error:Execution failed for task ':app:compileDebugJavaWithJavac'. Compilation f...

114得票5回答
如何从后台服务更新ViewModel的LiveData并更新UI

最近我正在探索谷歌最近推出的Android Architecture。从文档中,我发现了这个:public class MyViewModel extends ViewModel { private MutableLiveData<List<User>> use...

113得票6回答
Android Room:使用Room插入关联实体

我在Room中使用Relation添加了一个一对多的关系。我参考了这篇帖子编写了关于Room中关系的以下代码。 这篇帖子告诉了如何从数据库读取值,但是将实体存储到数据库中导致userId为空,这意味着两个表之间没有关系。 我不确定在具有userId值的情况下如何将User和List of ...

108得票34回答
Room持久化:错误:实体和POJO必须有可用的公共构造函数。

我正在将一个项目转换成 Kotlin,并尝试将我的模型(也是实体)转换为 data class。 我打算使用 Moshi 将 API 的 JSON 响应转换成对象。@Entity(tableName = "movies") data class MovieKt( @PrimaryKey...

108得票15回答
map()和switchMap()方法有什么区别?

LiveData类的这两种方法有何区别?官方文档和教程对此相当模糊。在map()方法中,第一个参数称为source,但在switchMap()中,它被称为trigger。这背后的原因是什么?

106得票3回答
为什么有一个单独的MutableLiveData子类来扩展LiveData?

看起来 MutableLiveData 与 LiveData 的区别仅在于将 setValue() 和 postValue() 方法公开,而在 LiveData 中它们是受保护的。 为什么要为此更改创建一个单独的类,而不是在 LiveData 中直接定义这些方法为公共方法呢? 一般来说,这...

105得票13回答
手动清除 Android ViewModel?

编辑:现在谷歌已经为我们提供了将ViewModel作用于导航图的能力,因此这个问题有点过时了。更好的方法(而不是尝试清除活动范围的模型)是为正确数量的屏幕创建特定的导航图,并将其作用于这些导航图。 关于android.arch.lifecycle.ViewModel类。 ViewMod...

103得票7回答
如何以及在哪里使用Transformations.switchMap?

在Google发布的最新Android Architecture Components库中,我们在Transformations类中有两个静态函数。虽然map函数很直接易懂,但我发现很难正确理解switchMap函数。 switchMap的官方文档可以在这里找到:这里。 有人能够解释如何和...