使用mvvm模式更改片段

时间:2016-01-07 06:44:12

标签: java android mvvm

我试图使用android绑定在android上找出mvvm模式的细节。

所以使用android绑定和mvvm,哪个类应该负责启动新活动或更改活动中的片段的代码?

在我看到的一些例子中,viewmodel引用了当前活动的上下文。但根据我的理解,这实际上是混合了viewmodel和view,这是我们试图分开的?

1 个答案:

答案 0 :(得分:1)

由于这是一个导航问题,您应该创建一个导航服务接口并将其注入到ViewModel中,并在导入服务的具体实现中注入当前上下文或应用程序上下文。

由于活动和片段通常通过使用完全限定类名称的意图导航(通常使用MyClass.class),因此在这种情况下会导致与MyClass的紧密耦合,因此您必须使用而是字符串(例如,您存储在final static字段中)。

因此MyClass.class取代NavigationConstants.MyClass而不是NavigationCostants.MyClass public static final string MyClass = MyClass.class.getName() this