Android 在活动及其片段之间共享视图模型不会在活动中调用observable

Android 在活动及其片段之间共享视图模型不会在活动中调用observable,android,mvvm,Android,Mvvm,我正在使用查看寻呼机。我已经为我的活动和视图页面中的片段创建了一个共享视图模型。问题是,当我在视图模型中设置MutableLiveData值时,活动中的观察者没有被调用 我使用以下行初始化视图模型 在activty中:viewModel=ViewModelProviders.of(this.get)(MyViewModel.class) 在片段中:viewModel=ViewModelProviders.of(getActivity()).get(MyViewModel.class) 调试时,我

我正在使用查看寻呼机。我已经为我的活动和视图页面中的片段创建了一个共享视图模型。问题是,当我在视图模型中设置MutableLiveData值时,活动中的观察者没有被调用

我使用以下行初始化视图模型

  • 在activty中:viewModel=ViewModelProviders.of(this.get)(MyViewModel.class)

  • 在片段中:viewModel=ViewModelProviders.of(getActivity()).get(MyViewModel.class)

  • 调试时,我发现在片段的onCreated上删除了活动的观察者


    据我所知,片段和活动都应该具有相同的视图模型实例。

    我为每个片段使用不同的视图模型,为活动使用不同的视图模型,因为每个片段的责任不同,应该分开,因此我将创建不同的视图模型。如果您想使用相同的方法,您可以使用一个bundle将视图模型从活动传递到片段

    我找到了解决方案。我正在创建活动和片段中可观察到的新实例。这导致在片段中创建的实例被调用,而我在活动中观察到的可观察对象的实例在片段创建时被替换。

    我们需要更多的代码,理想情况下,可以将问题复制到最少。您是否尝试过将第一个从(this)的
    更改为(getActivity)
    ,因为在示例代码中,第一个是活动本身。不知道对不起,有人在这里写了它,谢谢您的帮助。虽然我找到了答案,但这只是一个愚蠢的错误。我将删除这个问题,因为它在这里没有帮助。你也可以自己回答这个问题,没有问题是愚蠢的,它可能会帮助做同样事情的其他人