为什么Fragment实例化后,不序列化数据时,仅推荐用setArguments()传参?

2026-04-02 02:270阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计803个文字,预计阅读时间需要4分钟。

为什么Fragment实例化后,不序列化数据时,仅推荐用setArguments()传参?

为什么使用 `fragment.new` 创建实例后,只推荐使用 `getArguments()` 获取数据,而不是在不想使用序列化的情况下如何解决?

在 Android 开发中,使用 `fragment.new` 创建 `Fragment` 实例后,推荐使用 `getArguments()` 获取数据是因为 `Fragment` 在创建时可以携带一些参数,这些参数是通过 `Fragment` 的构造函数传递的。`getArguments()` 方法提供了一个安全的方式来访问这些参数,因为它会返回一个 `Bundle` 对象,该对象包含了传递给 `Fragment` 的所有参数。

如果不希望使用序列化的方式传递数据,可以通过以下几种方法解决:

1. 直接传递对象: 如果传递的对象不是序列化的,可以直接在创建 `Fragment` 实例时传递这些对象。例如:

java TabVideoFragment tab1VideoFragment=new TabVideoFragment(); tab1VideoFragment.setDefaultStoreList(list);

这种方法适用于传递基本数据类型或实现了 `Serializable` 接口的对象。

2. 使用接口: 如果传递的对象包含复杂的数据结构,可以考虑使用接口来传递数据。

阅读全文

本文共计803个文字,预计阅读时间需要4分钟。

为什么Fragment实例化后,不序列化数据时,仅推荐用setArguments()传参?

为什么使用 `fragment.new` 创建实例后,只推荐使用 `getArguments()` 获取数据,而不是在不想使用序列化的情况下如何解决?

在 Android 开发中,使用 `fragment.new` 创建 `Fragment` 实例后,推荐使用 `getArguments()` 获取数据是因为 `Fragment` 在创建时可以携带一些参数,这些参数是通过 `Fragment` 的构造函数传递的。`getArguments()` 方法提供了一个安全的方式来访问这些参数,因为它会返回一个 `Bundle` 对象,该对象包含了传递给 `Fragment` 的所有参数。

如果不希望使用序列化的方式传递数据,可以通过以下几种方法解决:

1. 直接传递对象: 如果传递的对象不是序列化的,可以直接在创建 `Fragment` 实例时传递这些对象。例如:

java TabVideoFragment tab1VideoFragment=new TabVideoFragment(); tab1VideoFragment.setDefaultStoreList(list);

这种方法适用于传递基本数据类型或实现了 `Serializable` 接口的对象。

2. 使用接口: 如果传递的对象包含复杂的数据结构,可以考虑使用接口来传递数据。

阅读全文