gpt4 book ai didi

android - 为什么我应该在主要 Activity 和 fragment 之间进行通信时实现接口(interface)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:06 26 4
gpt4 key购买 nike

我有点不明白。现在,我正在阅读 android 开发者网站上的文档,那里写着为了与 fragment 通信,我应该实现接口(interface)。但是,现在我可以轻松访问存在于 fragment 中的主要 Activity 类中的小部件。

例如,在主 Activity 类中,通过发出以下行,我可以访问 fragment 的 TextView。

TextView t1 = (TextView) findViewById(R.id.t1);

在这种情况下,为什么我需要实现接口(interface)? (原谅我的无知,谢谢)

最佳答案

Fragment 上,您如何访问它所附加的 Activity 的方法?您可以调用 getActivity(),但这只会提供对父 Activity 对象可用方法的访问权限,而不是您使用自己的自定义方法实现的方法。

要访问这些自定义方法,您需要告诉 Java 您知道您想要获取的特定 Activity 是您创建的那个,我们称它为 MyActivity,这显然扩展了 Activity 或它的一些其他实现,例如 ActionBarActivity。在这种情况下,您可以调用 ((MyActivity)getActivity()).myMethod();

现在的问题是您正在将您的 fragment 耦合到该特定 Activity 。这样一来,您将无法将您的 fragment 用于项目中的任何其他 Activity ,因为该特定 fragment 将寻找 MyActivity

因此,您可以在 interface 中声明 myMethod() 并让您的 Activity 实现它。如果将来您需要将 fragment 与另一个 Activity 一起使用,您所要做的就是让它也实现接口(interface)。

关于android - 为什么我应该在主要 Activity 和 fragment 之间进行通信时实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29583201/

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