我试图使用android绑定在android上找出mvvm模式的细节。
所以使用android绑定和mvvm,哪个类应该负责启动新活动或更改活动中的片段的代码?
在我看到的一些例子中,viewmodel引用了当前活动的上下文。但根据我的理解,这实际上是混合了viewmodel和view,这是我们试图分开的?
答案 0 :(得分:1)
由于这是一个导航问题,您应该创建一个导航服务接口并将其注入到ViewModel中,并在导入服务的具体实现中注入当前上下文或应用程序上下文。
由于活动和片段通常通过使用完全限定类名称的意图导航(通常使用MyClass.class
),因此在这种情况下会导致与MyClass
的紧密耦合,因此您必须使用而是字符串(例如,您存储在final static
字段中)。
因此MyClass.class
取代NavigationConstants.MyClass
而不是NavigationCostants.MyClass
public static final string MyClass = MyClass.class.getName()
this