[Android]Fragment与Activity之间的通信方案

Fragment依赖于Activity,那么它们之间的通信就必须要涉及。通过自己的寻找和实践,知道了Fragment和Activity之间的通信方案大概有5种,各有优缺点,用哪个方案看需求吧。

  1. setArguments(Bundle args)
  2. Handler
  3. Broadcast广播
  4. EventBus
  5. 接口回调

上代码,开始分析。自己写了个小Demo:Fragment通信Demo ,里边有上边前4种通信方式。  

demo中1、2、3为activity->fragment,2、3若要fragment->activiy则相关代码调换位置即可。4包含双向通信。

一、 setArguments(Bundle args)

 此方式还挺简单的,貌似是谷歌官方推荐的一种数据传递方式,如果遇到内存重启,系统会自动保存数据,和Activity中的Intent一个原理。

用Android Studio新建一个Fragment时,会自带一个函数:

private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";

private String mParam1;
private String mParam2;

/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment Fragment1.
*/
// TODO: Rename and change types and number of parameters
public static Fragment1 newInstance(String param1, String param2) {
	Fragment1 fragment = new Fragment1();
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param1);
    args.putString(ARG_PARAM2, param2);
    //保存数据
    fragment.setArguments(args);
    return fragment;
}

在Activity中新建Fragment实例的时候,直接传入想要传送的数据。


                
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值