文档章节

两个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的转跳只能是Fragment之间的么?

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

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

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

黄晓磊
2016/07/26
20
0
Fragment not attached to Activity 异常

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

听雪心情
2014/11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spark Load Data and Export Data

Load_Data_Command 一、导入数据-加载csv文件数据作为spark 临时表DataSource(不需要提前创建表,方便数据分析) 该命令将csv文件导入到临时表中,命令格式为 load data '文件路径' table [...

Avner
26分钟前
2
0
CDH5.13离线安装Spark2.3详细步骤

简介: 在我的CDH5.13集群中,默认安装的spark是1.6版本,这里需要将其升级为spark2.x版本。经查阅官方文档,发现spark1.6和2.x是可以并行安装的,也就是说可以不用删除默认的1.6版本,可以直...

hblt-j
29分钟前
2
0
Add XSS protection headers on Nginx

Add XSS protection headers on Nginx Add the following line in the http or server part of your Nginx configuration : ... # XSS Protection add_header X-Frame-Opt......

idoz
30分钟前
1
0
cmake windows 配置xp toolset

MPRO
36分钟前
2
0
day125-20181023-英语流利阅读-待学习

外卖员不要哭,打零工不容易 雪梨 2018-10-23 1.今日导读 上期我们讲到,有人认为:“零工经济”虽然没有占领全世界,但它剥夺了劳动者的合法权利,加剧了工作的不稳定性,那么“零工经济”是...

飞鱼说编程
49分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部