fragment间相互传值

本文介绍了在Android开发中,如何在不同的Fragment之间传递数据。提供了两种常见方法:通过Activity作为中介传递数据和利用Bundle直接传递数据。

在Activity中加载Fragment的时候,有时候可能会使用多个Fragment,这个时候就会产生多个fragment切换,并传值到另外一个fragment。也就是说两个fragment之间的参数传递,下面我介绍两种使用的比较多的方法;


方法一、在Activity中定义一个字段

然后添加set和get方法、也就是说我们在activity中定义一个类似于全局变量的参数,这样我们在一个fragment中对其值进行改变时,其他使用到的fragment中会对应产生变化,代码如下、data就是要传递的参数、如果是传递对象、可以把data换成一个对象即可

public class DemoActivity { private String data; public String getData() { return data; } public void setData(String data) { this.data = data; }}


这时候在Fragment中调用的时候直接像对象调用属性一样调用即可,不同之处也就是这里获取activity对象的方法如下

((DemoActivity)getActivity()).getData();


方法二、使用bundle进行数据传递,代码如下:

设置值方代码:

ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag("")); DemoFragment demoFragment = new DemoFragment();   Bundle bundle = new Bundle();   bundle.putString("key", "data");   demoFragment.setArguments(bundle);   ft.add(R.id.fragmentRoot, demoFragment, SEARCHPROJECT);   ft.commit();  


获取方凭借定义的key来获取对应的值代码如下:

String data= getArguments().getString("key");


总结一下:真正在开发过程中一般就是怎么简单怎么来了,第一种用着顺手就第一种来,规范的话其实应该是第二种,当然我们要是有什么事件处理的话,就比如我们值一改变对应fragment相应的做出处理的话我们就可以用回调进行监听啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值