android - 为什么我应该在主要活动和片段之间进行通信时实现接口

时间:2015-04-11 21:21:35

标签: android android-fragments

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

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

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

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

1 个答案:

答案 0 :(得分:4)

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

要访问这些自定义方法,您需要告诉Java您知道要创建的特定Activity是您创建的那个,我们称之为MyActivity,这显然会扩展{{1}或者像Activity那样的其他一些实现。在这种情况下,您可以拨打ActionBarActivity

现在的问题是您将片段与特定活动耦合。通过这样做,您将无法将片段与项目中的任何其他活动一起使用,因为该特定片段将查找((MyActivity)getActivity()).myMethod();

相反,您在MyActivity中声明myMethod()并让interface实现它。如果将来你需要将片段与另一个Activity一起使用,你所要做的就是让它实现接口。