前言

很多人提到向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;  }

更多相关文章

  1. Android小知识-自定义View相关知识(1)
  2. [置顶] Android艺术开发探索学习 之 测量view的宽高 以及 动态设
  3. 关于Android(安卓)SDK包里没有/docs文件夹帮助文档的处理方法
  4. android 显示消息框的方法
  5. android中对apk文件反编译的方法(详细)
  6. Java、Android的异常处理原理&Android(安卓)Crash捕获、分发及处
  7. 百度 腾讯 阿里UC 迅雷 部分Android笔试 面试题
  8. Android(安卓)源码分析之旅3.4--onConfigurationChanged
  9. 一文全面了解Android单元测试

随机推荐

  1. 如何让Android模拟器的Browser可以浏览In
  2. Android开源项目汇总
  3. 在Android下抓包
  4. Android(安卓)Studio 检测内存泄漏与解决
  5. 2012年总结
  6. 在cmd窗口中查询android的sqlite3数据库
  7. Android中Fragment嵌套Fragment,切换Fragm
  8. 【Android(安卓)Developers Training】 7
  9. Android内存溢出的解决方法(VMRuntime.get
  10. Android四种模式里隐含的哲学