Uzyskaj dostęp do widoku fragmentów z poziomu aktywności na stronie Tworzenie

Jestem w trakcie tworzenia mojej pierwszej aplikacji na Androida i mamFragment to zostanie dodane do mojegoActivity wActivityjestonCreate() metoda. Problem, z którym mam do czynienia, polega na tym, że nie mogę znaleźć żadnego z widoków zawartych wFragment zActivityjestonCreate() metoda.

Inne wątki sugerują, że to dlatego, żeFragment nie został jeszcze zawyżony, więcfindViewById() zwróci wartość null dla wszystkich widoków zawartych wFragment.

Oto co mam na myśli:

Czynność:

@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");
}

Fragment:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) {
System.out.println("fragment onCreateView");
    return inflater.inflate(R.layout.event_log, container, false);
}

Spowoduje to wydrukowanie wyników:

aktywność na Utwórz koniec aktywności na Utwórz fragment na CreateView

Z powodu tego zamówienia każda próba uzyskania dostępu do widokówFragment wActivityjestonCreate() metoda (przy użyciufindViewById()) produkujeNullPointerException, jakFragmentjestonCreateView() zostaje wywołana dopiero po zakończeniuActivityjestonCreate().

UżywającFragmentMangerjestexecutePendingTransactions() po dodaniuFragment nie pomaga.

Zasadniczo byłem zmuszony umieścić kod problemu wActivityjestonStart() metoda zamiastonCreate(), tak jakonStart() dzieje się poFragmentjestonCreateView().

Czy ktokolwiek, co jest tutaj standardową praktyką, lub jak mogę sprawić, by mój kod dostępu do Fragmentu działał wActivityjestonCreate() metoda?

questionAnswers(1)

yourAnswerToTheQuestion