У меня есть фрагмент, в котором я передаю его двум фабрикам, которые будут использовать для создания компонентов внутри себя.Фрагмент выглядит следующим образом:
public static MyFragment newInstance(Factory1 factory, Factory 2, factory2) {
MyFragment frag = new MyFragment();
frag.factory1 = factory1;
frag.factory2 = factory2;
return frag;
}
Эти фрагменты создаются в родительском действии следующим образом:
MyFagment frag1 = MyFragment.newInstance(new Factory1(), new Factory2());
. . .
MyFragment fragN = MyFragment.newInstance(new Factory1(), new Factory2());
внутри моего родительского действия, когда вызывается onSaveInstanceState()
, я помещаюфрагменты на менеджере для восстановления в методе onCreate()
onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
getSupportFragmentManager().putFragment(outState, "frag1", frag1);
...
}
Затем, когда действие запускается снова, я пытаюсь восстановить в onCreate()
, например, так:
if(savedInstanceState != null) {
frag1 = (MyFragment)getSupportFragmentManager().getFragment(savedInstanceState, "frag1");
}
Проблема в том, что оба свойства фабрики в восстановленном экземпляре фрагмента равны нулю.Я не понимаю, почему это происходит.Я хотел бы использовать здесь внедрение зависимостей, так как считаю, что оно вполне соответствует требованиям моего приложения.Есть ли что-то, что я пропускаю здесь?Нужно ли что-то делать во фрагменте на его внешности?Любое понимание будет оценено.Я также хочу сделать это изначально, не используя что-то вроде кинжала.Спасибо!