Android(安卓)创建fragment时向fragment中传数据
16lz
2021-01-25
有两个fragment分别为FragementA和FragmentB,现在要从FragementA跳转到FragmentB。同时要向FragmentB中传入数据,首先要在FragmentB中创建静态的方法,如下:
public static FragmentB getInstance(ObjectA object) {FragmentB fragment = new FragmentB();Bundle bundle = new Bundle();bundle.putSerializable(Constants.BundleKey.Object, result);fragment.setArguments(bundle);return fragment;}
在FragementA中跳转的时候:
FragmentB fragment = FragmentB .getInstance(result);addFragmentToStack(fragment, true, true);
其中addFragmentToStack代码:
protected void addFragmentToStack(final Fragment fragment,final boolean isAddToBack, boolean hasAnimation) {FragmentTransaction ft = getFragmentManager().beginTransaction();try {if (hasAnimation) {ft.setCustomAnimations(R.anim.slide_right_in, R.anim.slide_left_out,R.anim.slide_left_in, R.anim.slide_right_out);}} catch (ArrayIndexOutOfBoundsException e) {throw new ArrayIndexOutOfBoundsException("动画数组下标越界");}ft.add(R.id.fragment_container, fragment);if (isAddToBack) {ft.addToBackStack(null);}ft.commit();}这样就实现了fragment跳转的时候传递数据,在FragmentB中要把传递的数据取出,否则传数据就没有意义了,代码:
ObjectA object = (ObjectA) getArguments().getSerializable(Constants.BundleKey.Object);其中ObjectA这个类要实现Serializable方法,否则也是不能传递的,切记切记!!
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
- Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- Android:Activity(二):Bundle的作用
- Android完美解决多次点击Toast一直提示不消失问题
- Android(安卓)CI - Jenkins
- android使用百度地图获取自己所在的城市名
- android java 拷贝数据库文件到U盘,从U盘拷贝文件到私有目录下实