我正在尝试使用android绑定(bind)找出android上mvvm模式的详细信息。

因此,使用android绑定(bind)和mvvm,哪个类应该负责启动新 Activity 或更改 Activity 中的片段的代码?

在我看到的一些示例中, View 模型具有对 Activity 当前上下文的引用。但是据我了解,这实际上是将 View 模型和 View 混合在一起,这是我们要分离的东西?

最佳答案

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

由于 Activity 和片段通常是通过使用完整合格类名的意图(通常使用MyClass.class)导航到的,因此在这种情况下,这将导致与MyClass的紧密耦合,因此您必须使用字符串(将其存储在final static字段中例子)。

因此,您可以使用MyClass.class代替NavigationConstants.MyClass,其中NavigationCostants.MyClass将为public static final string MyClass = MyClass.class.getName()

10-08 13:29