Просмотр фрагмента доступа из Activity's onCreate

Я нахожусь в своем первом приложении для Android, и у меня есть Fragment который добавляется в мою Activity в onCreate() . Проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти какие-либо из мнений, содержащихся в Fragment из метода onCreate() .

Другие потоки предположили, что это происходит из-за того, что Fragment еще не был завышен, поэтому findViewById() возвращает null для любых представлений, содержащихся в 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); } 

Это отображает результаты:

Activity onCreate end of activity onCreate фрагмент onCreateView

Из-за этого порядка любая попытка доступа к представлениям Fragment в onCreate() с помощью findViewById() ) создает onCreateView() NullPointerException , так как onCreateView() Fragment onCreateView() ПОСЛЕ окончания Activity 'S onCreate() .

Использование FragmentManger 's executePendingTransactions() после добавления Fragment не помогает.

В принципе, я был вынужден поставить код проблемы в метод onCreate() onStart() , а не onStart() , так как onStart() происходит ПОСЛЕ onCreateView() .

Кто-нибудь, что представляет собой стандартная практика, или как я могу сделать свой код для доступа к фрагментам в рамках метода onCreate() ?

Solutions Collecting From Web of "Просмотр фрагмента доступа из Activity's onCreate"

Обновите свои взгляды в onCreateView() .

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.event_log, container, false); TextView tv = (TextView) view.findViewById(R.id.text); tv.setText("hello world"); return view; } 

Или, если ваши изменения зависят от Activity к onActivityCreated() прикреплен ваш Fragment , используйте onActivityCreated() .

 @Override public void onActivityCreated (Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); TextView tv = (TextView) getView().findViewById(R.id.text); tv.setText(getActivity.getSomeText()); }