gpt4 book ai didi

java - 从 Fragment 发送数据到 MainActivity

转载 作者:行者123 更新时间:2023-12-01 17:00:08 25 4
gpt4 key购买 nike

我有一个TextView在我的MainActivity和一个 Button位于 Fragment 中附于MainActivity 。当我点击 Button我想要TextView说“按钮被点击”。

这可能吗?

我认识两个Fragments附同Activity可以轻松地相互通信并相互发送数据。但是可以在 Fragment 中找到一个对象吗?将数据发送到 Activity 中的对象

通过编程来制作 TextView 是否更好?自己的Fragment并将其附加到 Activity ?然后我可以简单地让两个 fragment 相互发送数据。

抱歉,如果这不是 StackOverflow 的正确问题类型。我是 Fragments 的新手并未能找到有关此问题的明确解释。

提前致谢!

最佳答案

当前接受的答案(在 Activity 中使用静态方法)既奇怪又可以说是“错误的”。

静态方法的使用很奇怪,因为它不需要是静态的。

这是错误的,因为 Fragment 必须了解它所在的特定 Activity。这是“紧耦合”,也使得 fragment 不可重用。

此问题有两种常见的解决方案:

  1. 创建一个接口(interface),其中包含 Activity 中可由 fragment 调用的方法。在 Activity(使用该 Fragment 的所有 Activity)中实现该接口(interface),然后在 Fragment 中使用 getActivity() 获取 Activity,并将其转换为该接口(interface)。在此模式中,通常还会检查(使用“instanceof”)Activity 是否实现该接口(interface),如果没有,则抛出 RuntimeException。
  2. 使用事件总线(例如 Square 的 Otto、GreenRobot 的 EventBus)在 Fragment 与其父 Activity 之间进行通信。我觉得这是最干净的解决方案,并且完全抽象了来自其 Activity 的 fragment 。

关于java - 从 Fragment 发送数据到 MainActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28218522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com