每次调用onCreate方法时,不会调用ViewModel方法

时间:2019-07-02 16:39:52

标签: android mvvm viewmodel android-livedata

我的应用程序从API提取数据,并用食品类别图像和名称填充回收者视图。当我单击任何图像时,将打开另一个活动,第二个活动将显示该类别的食物列表。但是,当我打开任何类别时,它第一次起作用,但是如果我按“返回”或“向上”按钮回到MainAcivity并点击其他任何类别,则“第二个”活动中的食物项不会改变(不会调用ViewModel的方法)。

在GitHub上查看完整代码:https://github.com/harshabhadra/Foodie/tree/master/app/src/main

这是MainAcivity的onClick方法。我通过Intent发送类别名称:

addSubview()

这是我的第二项活动:

greaterThanOrEqualTo

当我在MainAcivity中点击该类别时,我期望在第二活动中根据类别看到不同的食物列表。

1 个答案:

答案 0 :(得分:0)

正在发生的事情是,您在loadData(category)为空(即第一次运行)时在存储库中调用categoryData。然后,它返回相同的实时数据,而不加载新的类别数据。

您只需要将loadData移至if之外。或者,您实际上可以做的是延迟初始化categoryData并摆脱if