如何在另一个ViewModel中使用一个ViewModel中的数据

时间:2019-01-07 08:01:08

标签: android viewmodel android-livedata android-mvvm

我有一个AddressesViewModel,它保存用户喜欢的地址,另一个SearchViewModel,它保存搜索到的地址。当用户搜索地址时,我必须通过检查“收藏夹”数组来检查该地址是否是收藏夹。正确的方法是什么?

我已经尝试从SearchViewModel订阅AddressesViewModel,但是我正在寻找其他选择,因为它在这些视图模型之间建立了过多的依赖关系。

2 个答案:

答案 0 :(得分:1)

如果我正确理解了该问题,则可以选择另一种方法。 假设您首先有这个:

ViewModelChild(constructor etc) : ViewModelParent(){

    // you can create a var/val to observe a variable in viewmodel parent.
    // upon observation of
    //this you can change other variables assigned here. 

}

答案 1 :(得分:0)

您将必须将两个ViewModel附加到同一生命周期所有者。例如,您有一个名为MainActivity的活动,两个名为AddressesViewModelSearchViewModel的ViewModel,并且需要为address到{{1}获取一个名为SearchViewModel的变量。 }

AddressesViewModel

希望这能回答您的问题。