文档章节

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

iamsean
 iamsean
发布于 2017/07/11 20:22
字数 302
阅读 15
收藏 0

需求:从一个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

  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

  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的跳转就算是完成了

© 著作权归作者所有

共有 人打赏支持
iamsean
粉丝 2
博文 1
码字总数 302
作品 0
商丘
私信 提问
Gson把Java POJO和Json数据字符串之间相互转换

Gson把Java POJO和Json数据字符串之间相互转换 例如: POJO pojo = new POJO(); 输出: 04-19 14:05:29.528 25587-25587/zhangphil.test D/POJO转换为Json字符串: {"id":1,"name":"zhangphil......

zhangphil
04/19
0
0
数据通信解耦框架 - Dilutions

Dilutions Dilutions是一个专门用于模块间数据协议通信的解耦协议框架,提供高性能数据分析和通信功能,解耦多项目多模块间的数据通信,简化代码逻辑成本。 通过一段URI字符串就能实现所有操作...

林小萌萌
06/01
0
0
Fragment not attached to Activity 异常

1、关于Fragment(XXFragment) not attached to Activity 异常。出现该异常,是因为Fragment的还没有Attach到Activity时,调用了如getResource()等,需要上下文Content的函数。解决方法,就...

听雪心情
2014/11/07
0
0
安卓里面Fragment的转跳只能是Fragment之间的么?

安卓里面Fragment的转跳只能是Fragment之间的么? 安卓里面Fragment的转跳只能是Fragment之间的么?Fragment和Activity能不能转跳? 我下图的错误是为嘛嘞~~~。我的aotherFragment有继承Fra...

it小码农
2016/09/25
189
3
Android第四十二天

1、Fragment的简单使用 <1>Fragment:在Activity中使用的碎片,有自己的布局、生命周期和输入事件 <2>使用Fragment的步骤 (1)创建类,并继承Fragment; (2)重写Fragment的onCreateView()生...

黄晓磊
2016/07/26
20
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
10
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
17
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
10
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部