首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将图像视图从改造后加载的片段传递到子片段?

如何将图像视图从改造后加载的片段传递到子片段?
EN

Stack Overflow用户
提问于 2021-02-13 09:46:56
回答 2查看 44关注 0票数 0

所以我有一个主片段和两个子片段,我想把图像视图从主片段传到子片段而又不要求在那两个子片段中重新得到改造,那怎么办??

我已经在我的main Fargment中尝试过:

代码语言:javascript
运行
复制
private lateinit var imgFile: File

.

代码语言:javascript
运行
复制
intent.putExtra("resId", imgFile)

然后在子片段中调用:

代码语言:javascript
运行
复制
val bundle: Bundle = intent.extras
    val resId: Int = bundle.getInt("resId")
    binding.imgmainac.setImageResource(resId)
EN

回答 2

Stack Overflow用户

发布于 2021-02-13 13:41:46

您始终可以直接从子片段中直接访问父片段字段

试着这样做

代码语言:javascript
运行
复制
(parentFragment as MainFragment).imgFile
票数 0
EN

Stack Overflow用户

发布于 2021-02-13 18:28:57

你在这里混淆了两件事:

  • a resId只是一个标识内部应用程序资源的Int。
  • a resId

文件既不是resId也不是Int。

因此,如果你已经有了一个文件,我建议:

将文件URI作为字符串放入捆绑包中(可以使用.setImageURI(...)通过file.toURI().toString())

  • retrieve Uri.parse(bundle.getString(...))

  • set it on ImageView获得该URI

编辑:

所以总结一下:

在发送者端

代码语言:javascript
运行
复制
    intent.putExtra("imageUri", file.toURI().toString())

在接收器端

代码语言:javascript
运行
复制
    val bundle = intent.extras
    val imageUri = bundle?.getString("imageUri")?.let { Uri.parse(it) }
    imageView.setImageURI(imageUri)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66181168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档