我已经设置了1个Main Activity(扩展了Activity类)和2个Fragments(扩展了fragment类)。
我尝试过建立一个由2个片段实现的接口。每个片段都从接口实现特定的功能,如下所示:
public stopMusic()
{
mediaplay.release(); // here, the mediaplay object belongs to only the respective fragment
}
现在,我知道不起作用,因为MediaPlayer对象对两个片段都不常见,即它们之间没有共享。
如果我从另一个片段(如Fragment2java)点击一个按钮,我希望释放在Fragment1.java中传输文件的mediaplayer对象。同样,如果我从Fragment1.java点击按钮,则释放在Fragment2.java中流式传输文件的mediaplayer对象。
我怎样才能实现这一目标?示例代码确实会有所帮助。
答案 0 :(得分:1)
假设片段A是控制片段,片段B是媒体播放器。所有通信都应通过父活动完成。因此,在片段B中,您创建父活动实现的“公共接口”,然后父活动应该调用片段B中的方法。
另外,根据你对媒体播放器或其他什么做的,这是否属于背景而不是片段B?
注意:片段应松散耦合,不会从片段到片段进行通信,始终通过父Activity进行通信。
希望这有帮助。
答案 1 :(得分:0)
您必须执行以下操作:
myMediaPlayerObject
)Activity a = getActivity();
((MainActivity)a).stopMusic();
或直接使用对象((MainActivity)a).myMediaPlayerObject