PageFragment fragment = new PageFragment();
Bundle args=new Bundle();
args.putInt("num", page);
fragment.setArguments(args);
return fragment;
问题:为什么Bundle需要它?创建键值对?还是它还有其他特点?
PageFragment fragment = new PageFragment();
Bundle args=new Bundle();
args.putInt("num", page);
fragment.setArguments(args);
return fragment;
问题:为什么Bundle需要它?创建键值对?还是它还有其他特点?
类
Bundle(来自英语 - 卷积)本质上是集合的包装器(外壳),ArrayMap用于为不同类型的元素创建更舒适的容器,您可以在其中放置任何 Parcelabe 对象和原始类型。该类是线程安全的,可以用来在不同线程之间传递值。对该集合的元素的访问是ArrayMap通过键值对执行的,如 中所示。此外,该类还提供放置和检索类型化数据的方法以及一些其他功能。该类广泛用于将异构数据分组为一个实体(例如字符串、质数、布尔值等),以便在同一对象的不同方法之间以及不同对象甚至同一应用程序的不同组件之间进行后续传输,主要是在事先不知道传输数据类型的情况下——也就是说,我们可以传递一个字符串,或者我们可以在每个单独的情况下传递一个数字或其他东西(在其他情况下,使用传递更方便通过构造函数或单独的方法参数)。
当需要返回几个不同类型的值时,使用这样的容器来传递方法的结果也很方便,创建POJO模型意义不大。
该类被系统广泛使用,包括用于在状态变化时存储值,但该类本身不提供这种保存的功能,它只是在其他机制的工作中对数据进行分组的包装器。
Bundle在执行过程中需要临时存储数据。在活动之间传递数据时,这是一个很好的选择。这是一种在更改屏幕方向时保存数据的方法。通常,这是系统用来恢复先前状态的已保存数据。表示一组键值对。
bundle 类用于在活动之间传输简单类型的数据(boolean byteshort int long char float double)。传输是通过各种机制完成的(1. 只是一个键值 2. Parcelable 接口 3. Serizilable 机制 4. 来自 Google 的 GSON 库。)不要尝试通过 bundle 传递对象引用或对象指针。它仅适用于简单类型。如果大家对数据传输的例子感兴趣,可以在github上看我的简单例子-通过bundle传输数据的实验。https://github.com/aleontsev/TrasferingDataBetweenActivitiesParcelableSerizilableBundleandCrashalyticsSentry