Android MVVM and Intent

6

我在我的应用程序中使用了Android Arch组件和MVVM架构。

模型层和存储库类决定并提供数据给viewmodel,然后再传递到视图层。

如果该活动要使用的数据既不来自网络也不来自数据库,而是来自先前的活动通过Intent传递过来的,那么在这种情况下你将遵循哪种模式?

1个回答

3
将数据传递给视图模型并将其存储在那里。 如果仅是ID或某些部分,则可以从视图模型调用模型层。

是的,我确实在某个场合这样做了。只需从意图中获取额外信息,并在ViewModel中的'LiveData'中设置该值即可。在Kotlin中非常容易:)祝愉快! - Krzysztof Kubicki
@KrzysztofKubicki 你能详细说明一下吗?如何从一个片段(列表)传递额外的对象到一个活动(详情)中。 - Dr4ke the b4dass
@Dr4ketheb4dass 如果你有一些对象的存储方式,那么最优化的办法是只传递对象的ID,在详情界面中从存储(如仓库)中获取该ID对应的对象。如果无法这样做,则需要将对象实现可Parcelable接口,然后可以将对象通过意图传递到活动中。 - kissbudai
感谢@kissbudai。我已经使用了一个共享的ViewModel。它很有效。我将ID作为bundle传递。 - Dr4ke the b4dass
我不建议使用共享ViewModel。更好的方法是拥有一个数据层,例如存储数据的Repository类(单例类),您可以直接从ViewModels中获取所需的数据。其中一个将获取整个列表,另一个仅按ID获取一个项目。这样,您将实现更分层的架构,这在未来将非常有用。也许这种情况很简单,但是随着更多逻辑的加入,共享ViewModel将变得难以维护。 - Kiss-Budai Matyas

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