Доступ к представлению фрагмента из действия onCreate
Я делаю свое первое приложение для Android, и у меня естьFragment
это добавляется к моемуActivity
вActivity
& APOS; sonCreate()
метод. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти ни одного из представленных вFragment
отActivity
& APOS; sonCreate()
метод.
Другие темы предположили, что это потому, чтоFragment
еще не раздут, такfindViewById()
вернет ноль для любых представлений, содержащихся вFragment
.
Вот что я имею в виду:
Деятельность:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("activity onCreate");
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
return;
}
initialiseUI(); // Fragment added to Activity
System.out.println("end of activity onCreate");
}
Фрагмент:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
System.out.println("fragment onCreateView");
return inflater.inflate(R.layout.event_log, container, false);
}
Это печатает результаты:
деятельность по созданию конец деятельности по созданию фрагмент onCreateView
Из-за этого порядка любая попытка получить доступ к представлениямFragment
вActivity
& APOS; sonCreate()
метод (используяfindViewById()
) производитNullPointerException
какFragment
& APOS; sonCreateView()
называется только ПОСЛЕ концаActivity
& APOS; sonCreate()
.
С использованиемFragmentManger
& APOS; sexecutePendingTransactions()
после добавленияFragment
не помогает.
По сути, я был вынужден поместить код проблемы вActivity
& APOS; sonStart()
метод вместоonCreate()
, какonStart()
случается ПОСЛЕFragment
& APOS; sonCreateView()
.
Кто-нибудь, какова стандартная практика здесь, или как я могу заставить мой код доступа к просмотру фрагментов работать в пределахActivity
& APOS; sonCreate()
метод?