繁体   English   中英

StartActivityForResult 从 MVVM 架构中的图库中获取图像?

[英]StartActivityForResult to get images from gallery in MVVM architecture?

我正在为我的PhotoEditorActivity使用 MVVM 架构,该活动扮演 View 角色。 当用户单击“选择图像”按钮时,我想启动画廊以选择图像并取回其 uri 以更新 ImageView。 我对在哪里调用startActivityForResult()感到困惑。

  • 从 View 调用startActivityForResult() :这样,Activity 处理一切,ViewModel 和 Model 变得多余。
  • 从 ViewModel 调用startActivityForResult()并且 View 从 ViewModel 观察 Uri:我可以将Context传递给 ViewModel 以启动活动,但我无法接收 uri,因为 ViewModel 没有onActivityResult()
  • 从 Model 调用startActivityForResult() :View 将Context传递给 ViewModel,ViewModel 继续将Context传递给 Model。 使用这种方式,我用第二种方式面临同样的问题。

您能否帮助我如何正确地为这项业务应用 MVVM。 每个组件应该包含什么? 感谢您的关注。

所有与 Android 相关的事情最好在 View 中处理。 具体使您的代码松散耦合取决于您打算如何处理您选择的图像/文件。 例如,如果您尝试将其上传为 bitmap,那么您应该在视图中创建 bitmap 并将其传递给视图 model。 此外,onActivityResult 现在已折旧。 请参阅此处的官方文档 您可能还想查看此答案以获取它的示例实现

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM