2016-02-08 4 views
0

Я новичок в программировании на Android, и я изучаю некоторые компоненты и архитектуру.Передача параметров во Фрагмент во время создания

Я сейчас тестирую фрагменты.

Мне нужно передать список пользовательских объектов из моего Activity в вложенный Fragment.

Я прочитал этот вопрос: How to pass a variable from Activity to Fragment, and pass it back? и я заметил, что коллекция Bundle - лучшая практика для передачи параметров во время создания фрагментов.

Bundle bundle = new Bundle(); 
String myMessage = "Stackoverflow is cool!"; 
bundle.putString("message", myMessage); 
FragmentClass fragInfo = new FragmentClass(); 
fragInfo.setArguments(bundle); 

Но я задаюсь вопросом, почему я не могу просто передать свои параметры с помощью конструктора, скажем:

List<CustomObject> myParameter = new ArrayList<CustomObject>(); 
MyFragment fragInfo = new MyFragment(myParameter); // custom Fragment constructor 

Это неправильный подход? Является ли пустой конструктор, используемый фреймворком для создания фрагмента посредством отражения или чего-то подобного?

+0

Вы правы. И они не могут делать никаких предположений о количестве и типе аргументов вашего конструктора – Blackbelt

ответ

2

В то время, когда Android хочет воссоздать фрагмент (например, приложение поставляется с фона на передний план), он будет использовать конструктор no-argument по умолчанию (без параметров). Поэтому вы не должны перегружать конструктор.

Смежные вопросы