Класс Bundle зачем он?

411
06 февраля 2017, 15:25
PageFragment fragment = new PageFragment();
Bundle args=new Bundle();
args.putInt("num", page);
fragment.setArguments(args);
return fragment;

Вопрос: Зачем Bundle нужен? чтобы создать связку ключ-значение? или у него есть еще функции?

Answer 1

Bundle необходим для временного хранения данных в процессе выполнения. Это отличный выбор при передаче данных между активностями. Это способ для сохранения данных при смене ориентации экрана.

Вообщем это сохранённые данные, которые система для использует для восстановления предыдущего состояния. Представляет собой набор пар ключ-значение.

Answer 2

Класс Bundle (с английского - сверток) по сути представляет собой враппер (оболочку) над коллекцией ArrayMap для создания более комфортного в работе контейнера для элементов разных типов, в котором можно разместить любые Parcelabe-объекты и примитивные типы. Класс является потокобезопасным и может использоваться для передачи значений между разными потоками. Доступ к элементам этой коллекции осуществляется, как и в ArrayMap, по парам ключ-значение. Дополнительно класс предоставляет методы по размещению и извлечению типизированных данных и некоторые другие возможности.

Класс широко используется для группировки в одну сущность разнотиповых данных (как например строки, простые числа, булевы значения и др.) для последующей передачи как между отдельными методами одного объекта, так и разными объектами и даже разными компонентами одного приложения в основном в случаях, когда типы передаваемых данных заранее не известны - то есть мы можем передат строку, а можем и число или чт то другое в каждом отдельном случае (в остальных случаях удобнее использовать передачу через конструктор или отдельные аргументы метода).

Так же такой контейнер удобно использовать для передачи результата работы метода, когда нужно вернуть несколько значений разного типа, а создавать POJO-модель нет особого смысла.

Класс широко используется системой, в том числе и для хранения значений при смене состояния, но сам класс не предоставляет функционал такого сохранения, он лишь оболчка для группировки данных в работе других механизмов.

READ ALSO
Пересечение отрезка и эллипса

Пересечение отрезка и эллипса

Дан отрезок из двух точек А и В (у каждой точки есть координаты)

564
Не ставится фон, свойство Background-image не работает

Не ставится фон, свойство Background-image не работает

Архив с файлами тутХотел поставить фон в header но Background-image почему то не работает, путь указал правильно пробовал фон в туже папку скинуть, что...

464