【问题标题】:android - Why should I implement interface while communicating between main activity and fragmentandroid - 为什么我应该在主要活动和片段之间进行通信时实现接口
【发布时间】:2015-06-17 10:58:53
【问题描述】:

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

例如,在主活动类中,通过发出以下行,我可以访问片段的 TextView。

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

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

【问题讨论】:

标签: android android-fragments


【解决方案1】:

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

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

现在的问题是您将片段耦合到该特定活动。这样一来,您将无法在项目中的任何其他活动中使用您的片段,因为该特定片段将寻找MyActivity。

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

【讨论】:

  • 很好的解释。谢谢。
猜你喜欢
  • 1970-01-01
  • 2021-03-14
  • 2012-12-24
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多