Android如何优雅地向Fragment传递参数
16lz
2021-01-26
前言
很多人提到向Fragment传递参数会下意识想到重写Fragment的构造方法并传入自己的参数。事实上,这种方式时极不科学和极不安全的,因为Android在很多场景下都会出现Fragment的重建情况(比如横竖屏的切换),但是重建的时候系统并不会使用你编写的Fragment的构造方法而是调用Fragment默认的构造方法,这个时候你传的参数将会消失导致各种异常。那么如何更安全地向Fragment传递参数呢,这里建议大家使用Google官方推荐的setArguments方法:
使用
- 初始化Fragment实例并setArguments
DiscoverFragment discoverFragment = new DiscoverFragment();Bundle bundle = new Bundle();bundle.putString("email", email);discoverFragment.setArguments(bundle);
在Fragment中拿到Arguments:
@Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_discover, null); Bundle bundle = getArguments(); //这里就拿到了之前传递的参数 email = bundle.getString("email"); return view; }
更多相关文章
- Android小知识-自定义View相关知识(1)
- [置顶] Android艺术开发探索学习 之 测量view的宽高 以及 动态设
- 关于Android(安卓)SDK包里没有/docs文件夹帮助文档的处理方法
- android 显示消息框的方法
- android中对apk文件反编译的方法(详细)
- Java、Android的异常处理原理&Android(安卓)Crash捕获、分发及处
- 百度 腾讯 阿里UC 迅雷 部分Android笔试 面试题
- Android(安卓)源码分析之旅3.4--onConfigurationChanged
- 一文全面了解Android单元测试