两个Fragment之间的跳转,和数据的传递

需求:从一个Fragment跳转到另一个Fragment,并且还要传递数据,就像Activity的跳转一样。


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

[java]  view plain  copy
  1. @Override  
  2. public void onCreate(Bundle savedInstanceState) {  
  3. super.onCreate(savedInstanceState);  
  4. fm = getFragmentManager();  
  5. }  

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

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. deptListView.setOnItemClickListener(new OnItemClickListener() {  
  2. @Override  
  3. public void onItemClick(AdapterView<?> arg0, View arg1, int postion,long arg3) {  
  4. ft = fm.beginTransaction();//注意。一个transaction 只能commit一次,所以不要定义成全局变量  
  5. long id = adapter.getDepartments().get(postion).getId();  
  6. String name = adapter.getDepartments().get(postion).getName();  
  7. DeptDocFragment df = new DeptDocFragment();  
  8. Bundle bundle = new Bundle();  
  9. bundle.putLong("id", id);  
  10. bundle.putString("name", name);  
  11. df.setArguments(bundle);  
  12. ft.replace(R.id.guide_content, df);  
  13. ft.addToBackStack(null);  
  14. ft.commit();  
  15.     }  
  16. });  
上面的DeptDocFragment就是我要跳转的Fragment,而传递数据跟Activity一样,用Bundle,最后通过df.setArguments(bundle);携带数据。通过replace方法切换Fragment实现跳转,最后别忘了commit 提交。


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

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. @Override  
  2. public void onCreate(Bundle savedInstanceState) {  
  3. super.onCreate(savedInstanceState);  
  4. Bundle bundle = getArguments();  
  5. deptId = bundle.getLong("id");  
  6. deptName = bundle.getString("name");  
  7. }  

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

转载至:http://blog.csdn.net/r8HZGEmq/article/details/45950297

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值