[英]StartActivityForResult to get images from gallery in MVVM architecture?
我正在为我的PhotoEditorActivity
使用 MVVM 架构,该活动扮演 View 角色。 当用户单击“选择图像”按钮时,我想启动画廊以选择图像并取回其 uri 以更新 ImageView。 我对在哪里调用startActivityForResult()
感到困惑。
startActivityForResult()
:这样,Activity 处理一切,ViewModel 和 Model 变得多余。startActivityForResult()
并且 View 从 ViewModel 观察 Uri:我可以将Context
传递给 ViewModel 以启动活动,但我无法接收 uri,因为 ViewModel 没有onActivityResult()
。startActivityForResult()
:View 将Context
传递给 ViewModel,ViewModel 继续将Context
传递给 Model。 使用这种方式,我用第二种方式面临同样的问题。您能否帮助我如何正确地为这项业务应用 MVVM。 每个组件应该包含什么? 感谢您的关注。
所有与 Android 相关的事情最好在 View 中处理。 具体使您的代码松散耦合取决于您打算如何处理您选择的图像/文件。 例如,如果您尝试将其上传为 bitmap,那么您应该在视图中创建 bitmap 并将其传递给视图 model。 此外,onActivityResult 现在已折旧。 请参阅此处的官方文档。 您可能还想查看此答案以获取它的示例实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.