需求:从一个Fragment跳转到另一个Fragment,并且还要传递数据,就像Activity的跳转一样。
1、首先在第一个Fragment 里面拿到FragmentManger 和FragmentTransaction 代码如下。
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- fm = getFragmentManager();
- }
2 准备要传递的数据跳转。
- deptListView.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> arg0, View arg1, int postion,long arg3) {
- ft = fm.beginTransaction();//注意。一个transaction 只能commit一次,所以不要定义成全局变量
- long id = adapter.getDepartments().get(postion).getId();
- String name = adapter.getDepartments().get(postion).getName();
- DeptDocFragment df = new DeptDocFragment();
- Bundle bundle = new Bundle();
- bundle.putLong("id", id);
- bundle.putString("name", name);
- df.setArguments(bundle);
- ft.replace(R.id.guide_content, df);
- ft.addToBackStack(null);
- ft.commit();
- }
- });
3 接下来就是在另一个Fragment 中获取第一个Fragment 传递过来的数据。
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Bundle bundle = getArguments();
- deptId = bundle.getLong("id");
- deptName = bundle.getString("name");
- }
在Fragment的onCreate() 方法中获取数据。然后在这个Fragment中完成你需要的逻辑。至此,整个Fragment的跳转就算是完成了
转载至:http://blog.csdn.net/r8HZGEmq/article/details/45950297