- ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag(“”));
- SearchProjectFragment sf = new SearchProjectFragment();
- Bundle bundle = new Bundle();
- bundle.putString("key", Projsid);
- sf.setArguments(bundle);
- ft.add(R.id.fragmentRoot, sf, SEARCHPROJECT);
- ft.addToBackStack(SEARCHPROJECT);
- ft.commit();
可以使用bundle进行参数传递,这样在两个Fragment跳转的时候就可以带上参数了,在另外一个Fragment获取参数的方式只需要一个语句String string = getArguments().getString("key"); key是自己定义的一个标识,参数的形式只要bundle能传递都可以实现
这个原理好像是和Activity是一样的。我这里传递的是一个关键字,从一个搜索Fragment页面跳转到两外一个结果查询的Fragment页面,在跳转的时候也可以加上一些动画的跳转效果
- ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right);
下面是我在项目中例子,fragment通过itent将值传递到activty,然后通过下面的代码
shipProductId=getIntent().getStringExtra("shipProductId"); shipCompanyFragment=new ShipCompanyFragment(); Bundle bundle=new Bundle(); bundle.putString("productId", shipProductId); shipCompanyFragment.setArguments(bundle); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.add(R.id.ship_container, shipCompanyFragment); ft.commit();
传递到fragment,
最后再fragment中
shipProductId=getArguments().getString("productId");
即可得到