Fragment之间传递数据

最近做demo用到了fragment , 想着fragment之间应该跟activity一样可以传递数据. 话虽如此, 但是对fragment不大熟悉, 所以百度了好几个方法都不行,最后在好友的指导下 终于知道了如何操作 . 目前只是做到了简单数据的传递, 复杂数据 map之类的,日后会补充的, 写这个文章一方面可以帮助一下像我一样不大熟悉fragment的朋友, 一方面更是让自己有所记录以后不怕找不到代码.

直接上代码吧.

当前的fragment的代码:

(自己写个点击事件,将下面这几行代码复制进来,即可进行测试)

FragmentTransaction ft = getFragmentManager().beginTransaction();
//隐藏当前的fragment,tag我自定义为A
ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag("A"));
//拿到下一个fragment的实例
NextFragment nf = new NextFragment();
//使用bunle传递数据
Bundle bundle = new Bundle();
bundle.putString("key", "---你好呀,NextFragment---");
nf.setArguments(bundle);
//打开下一个fragment,参数1:依附的activity,参数2:下一个fragment的实例

//参数3:下一个fragment的tag
ft.add(R.id.fragment_root,nf, "B");
ft.addToBackStack("B");
ft.commit();

下一个fragment,即NextFragment的代码:

在onCreatView()方法里面

//记得判空,不然可能空指针
if (getArguments() != null) {
    String string = getArguments().getString("key");
    ToastUtil.show(getActivity(), string);
  }


ps:这个方法,似乎只是适合于同一个activity容器下的fragment之间消息传递...日后继续补充...


猜你喜欢

转载自blog.csdn.net/yan_startwith2015/article/details/53924463
今日推荐