在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相应的做出处理的话我们就可以用回调进行监听啦。
本文介绍了在Android开发中,如何在不同的Fragment之间传递数据。提供了两种常见方法:通过Activity作为中介传递数据和利用Bundle直接传递数据。

429

被折叠的 条评论
为什么被折叠?



