Я новичок в программировании на 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
Это неправильный подход? Является ли пустой конструктор, используемый фреймворком для создания фрагмента посредством отражения или чего-то подобного?
Вы правы. И они не могут делать никаких предположений о количестве и типе аргументов вашего конструктора – Blackbelt