Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android-为什么在主活动和片段之间通信时要实现接口_Android_Android Fragments - Fatal编程技术网

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

android-为什么在主活动和片段之间通信时要实现接口,android,android-fragments,Android,Android Fragments,我有些不明白。现在,我正在阅读android开发者网站上的文档,其中写到,为了与片段通信,我应该实现接口。不过,现在我可以轻松访问主activitiy类中存在于片段上的小部件 例如,在主活动类中,通过发出以下命令,我可以访问fragment的TextView TextView t1=(TextView)findViewById(R.id.t1) 在这种情况下,我为什么需要实现接口?(请原谅我的无知和感谢)关于片段,您如何访问它所附加的活动的方法?您可以调用getActivity(),但这将只允许

我有些不明白。现在,我正在阅读android开发者网站上的文档,其中写到,为了与片段通信,我应该实现接口。不过,现在我可以轻松访问主activitiy类中存在于片段上的小部件

例如,在主活动类中,通过发出以下命令,我可以访问fragment的TextView

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


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

关于
片段
,您如何访问它所附加的
活动的方法?您可以调用
getActivity()
,但这将只允许访问父
Activity
对象可用的方法,而不是使用您自己的自定义方法实现它

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

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


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

这里有很多代码示例:。这些演示了如何使用
活动
适配器
的接口,与使用
接口
的方式相同。可能重复的解释很好。非常感谢。