我不明白。现在,我正在阅读android开发者网站中的文档,并且在那里写道,为了与片段进行通信,我应该实现接口。但是,现在我可以轻松访问主要活动类中的小部件,存在于片段中。
例如,在主活动类中,通过发出以下行,我可以访问片段的TextView。
TextView t1 = (TextView) findViewById(R.id.t1);
在这种情况下,为什么我需要实现接口? (原谅我的无知和感谢)
答案 0 :(得分:4)
在Fragment
上,您如何访问附加到Activity
的方法?您可以调用getActivity()
,但这只能访问父Activity
个对象可用的方法,而不能使用您自己的自定义方法实现它。
要访问这些自定义方法,您需要告诉Java您知道要创建的特定Activity
是您创建的那个,我们称之为MyActivity
,这显然会扩展{{1}或者像Activity
那样的其他一些实现。在这种情况下,您可以拨打ActionBarActivity
现在的问题是您将片段与特定活动耦合。通过这样做,您将无法将片段与项目中的任何其他活动一起使用,因为该特定片段将查找((MyActivity)getActivity()).myMethod();
。
相反,您在MyActivity
中声明myMethod()
并让interface
实现它。如果将来你需要将片段与另一个Activity
一起使用,你所要做的就是让它实现接口。