android fragment传递数据到activity,activity中实现接口回调

在Android开发中,Fragment与Activity间共享事件通常采用接口回调的方式。Fragment定义回调接口,由Activity实现,例如在音乐播放应用中,Fragment A(显示歌曲列表)在选中歌曲时通过接口通知Activity,Activity再将信息传递给Fragment B(显示歌曲详情)。当Fragment A的onAttach()方法被调用时,检查并实例化Activity中实现的接口。在用户点击列表项时,Fragment A调用接口的onMp3Changed()方法,将事件传给Activity,利用传递的行ID获取对应歌曲信息。
摘要由CSDN通过智能技术生成

         在某些案例中,可能需要Fragment与Activity共享事件。在Fragment内部定义一个回调接口是一个好方法,并且规定由持有它的Activity实现这个回调方法。当Activity通过接口接受回调时,它能在必要时与布局中的其他Fragment共享信息。例如,如果一个音乐播放器的应用程序在一个Activity中有两个Fragment---一个用来显示歌曲列表(Fragment A),另一个用来显示歌曲信息(Fragment B),然后在列表项目被选中时Fragment A必须告诉Activity,以便它能告诉Fragment B显示对应的歌曲信息。在下面的例子中在Fragment A的内部声明了onMp3ChangedListener接口。

public static class FragmentA extends ListFragment {  
      
    //持有它的Activity必须实现这个回调方法  
    public interface onMp3ChangedListener{  
        public void onMp3Changed(int index);//index表示的是歌曲在列表中的序号  
    }  
      
}  

        然后,持有这个Fragment的Activity要实现onMp3ChangedListener接口,并且要重写onMp3Changed()方法把来自Fragment A的事件通知给Fragment B。要确保持有Fragment的Activity实现这个接口, Fragment A 的onAttach()回调方法(当Fragment被添加到Activity时系统调用这个方法)通过类型转换onAttach()传入的Activity来实例化一个onMp3ChangedListener的实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值