Android中Fragment数据参数传递

来源:互联网 发布:阿里云总部地址 云栖 编辑:程序博客网 时间:2024/04/17 03:38

在项目中,很多时候我们需要在一个Fragment直接跳转到另一个Fragment,并携带一些数据过去,下面写出一种比较容易理解的方法。

现在我们准备从fragment2跳转到fragment1,并把一个数据带给fragment1

<pre name="code" class="java"><span style="font-family:Microsoft YaHei;font-size:14px;">String args = "hello fragment1";</span>
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="white-space:pre"></span>FragmentManager fm = ((MainActivity)getActivity()).getFragmentManager();Fragment1 fragment1 = new Fragment1();FragmentTransaction ft = fm.beginTransaction();Bundle bundle = new Bundle();bundle.putString("key",</span><span style="font-family:Microsoft YaHei;font-size:14px;">args)</span><span style="font-family: 'Microsoft YaHei';">;</span><span style="font-family:Microsoft YaHei;font-size:14px;">fragment1.setArguments(bundle);ft.replace(R.id.layout_fl, f1);ft.addToBackStack(null);ft.commit();</span>


上面的代码我们是编写在fragment2中的,这两个fragment都依附在同一个Activity上,拿到FragmentMangner,new出来要跳转的对象,也就是fragment1,之后开启事物。

调用fragment1.setArguments(bundle);方法,就把数据传递给了fragment1

现在我们来看,如何在fragment1中取出数据

在fragment1中编写代码

<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="white-space:pre"></span>String args = getArguments().getString("key");</span>
这样很简单就把bundle中的字符串取了出来

很多人出现空指针异常的错误,这时候你就要判断是否你的设置数据是否在取出数据之前,建议你做一个bundle是否为null的判断吧~



1 0