Android  两个Fragment之间的跳转和数据的传递实例详解

      作为一个Android的菜鸟,前些天在做项目的时候用到了fragment,需求是从一个Fragment跳转到另一个Fragment,并且还要传递数据,就像Activity的跳转一样。在网上找了好久都没找到很好的列子,最后通过看别人的博客和查文档终于做好了,现在整理一下,希望能帮助有需要的童鞋。

      1、首先在第一个Fragment 里面拿到FragmentManger 和FragmentTransaction 代码如下。

  @Override  public void onCreate(Bundle savedInstanceState) {  // TODO Auto-generated method stub  super.onCreate(savedInstanceState);  fm = getFragmentManager();  }

  2 准备要传递的数据跳转。

 deptListView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int postion,long arg3) {ft = fm.beginTransaction();//注意。一个transaction 只能commit一次,所以不要定义成全局变量long id = adapter.getDepartments().get(postion).getId();String name = adapter.getDepartments().get(postion).getName();DeptDocFragment df = new DeptDocFragment();Bundle bundle = new Bundle();bundle.putLong("id", id);bundle.putString("name", name);df.setArguments(bundle);ft.replace(R.id.guide_content, df);ft.addToBackStack(null);ft.commit();}});

上面的DeptDocFragment就是我要跳转的Fragment,而传递数据跟Activity一样,用Bundle,最后通过df.setArguments(bundle);携带数据。通过replace方法切换Fragment实现跳转,最后别忘了commit 提交。

3  接下来就是在另一个Fragment 中获取第一个Fragment 传递过来的数据。

@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);Bundle bundle = getArguments();deptId = bundle.getLong("id");deptName = bundle.getString("name");}

 在Fragment的onCreate() 方法中获取数据。然后在这个Fragment中完成你需要的逻辑。好了,整个Fragment的跳转就算是完成了。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  3. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  4. Android(安卓)从setContentView谈Activity界面的加载过程
  5. Android(安卓)studio获取服务器端json数据并解析
  6. Android(安卓)View移动的3种方式总结
  7. Android(安卓)WebKit HTML主资源加载过程
  8. Android数据加密AES之Aes加密(一)
  9. android 定时任务 Alarm机制

随机推荐

  1. 布局文件中的笔记
  2. Android(安卓)系统中WatchDog 日志分析
  3. android的第一天学习
  4. android 中文 api (43) ―― Chronometer
  5. Android(安卓)TextView跑马灯效果
  6. 【转】善用Android预定义样式来为我们的
  7. Android(安卓)4.4 SD卡文件读写变化
  8. 在android studio 2.1 实现简单的ndk
  9. Android(安卓)电话的反射调用机制实现静
  10. 使用navigator.userAgent.toLowerCase()