使用MVVM模式更改片段

4
我正在尝试使用Android Binding在Android上了解MVVM模式的详细信息。
因此,使用Android Binding和MVVM,哪个类应负责启动新活动或更改活动中的片段?
在一些示例中,我看到ViewModel具有对活动当前上下文的引用。但据我理解,这实际上是混合了ViewModel和View,而我们正试图将它们分开?
1个回答

1

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

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

因此,您将使用NavigationConstants.MyClass而不是MyClass.class,其中NavigationCostants.MyClass将是public static final string MyClass = MyClass.class.getName()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接