Android中向Fragment传递数据

为什么不推荐用构造函数传递参数

有人说向Fragment传递数据可以通过构造函数或者public方法,这确实是可以传递成功的,但是安卓官方并不推荐这两种方法,而是推荐用setArguments()方法来向Fragmen传递数据,这是为什么呢?

根据Android官方文档说明,当一个Fragment重新创建的时候,系统会再次调用Fragment中的默认构造函数,而不是带参数的构造函数。一旦由于什么原因(例如横竖屏切换)导致你的Fragment重新创建。那么你之前传递的参数都不见了,因为recreate你的Fragment的时候,调用的是默认构造函数。因此官方推荐使用Fragment.setArguments(Bundle bundle)这种方式来传递参数,而不推荐通过构造方法直接来传递参数。

设置参数

Fragment fragment = new Fragment();
Bundle bundle = new Bundle();
bundle.putInt("type", type);
fragment.setArguments(bundle);

获取参数

int type = getArguments().getInt("type");

相关推荐

  1. AndroidFragment传递数据

    2024-03-12 23:06:04       21 阅读
  2. AndroidFragment失去焦点的场景

    2024-03-12 23:06:04       9 阅读
  3. Android数据传递

    2024-03-12 23:06:04       18 阅读
  4. Android使用intent可以传递哪些类型的数据

    2024-03-12 23:06:04       16 阅读
  5. AndroidFragment生命周期的异常情况分析

    2024-03-12 23:06:04       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-12 23:06:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-12 23:06:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-12 23:06:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-12 23:06:04       20 阅读

热门阅读

  1. leetcode - 953. Verifying an Alien Dictionary

    2024-03-12 23:06:04       20 阅读
  2. 使用hashmap优化时间复杂度,leetcode1577

    2024-03-12 23:06:04       22 阅读
  3. 计算机等级考试:信息安全技术 知识点六

    2024-03-12 23:06:04       22 阅读
  4. 【Go】探索Go语言中的关于defer的应用

    2024-03-12 23:06:04       22 阅读
  5. VSCode无法用ctrl+鼠标滚轮调整字体大小了

    2024-03-12 23:06:04       18 阅读
  6. python中的幂运算

    2024-03-12 23:06:04       21 阅读
  7. Python sort从大到小排序面试题

    2024-03-12 23:06:04       20 阅读
  8. Spring Data的Repositories----自定义存储库实现

    2024-03-12 23:06:04       21 阅读