onCreateView () nie jest wywoływany natychmiast po FragmentTransaction.commit ()

Mam działanie, w którym dynamicznie zastępuję fragmenty:

private void goToFragment(Fragment newFragment, String tag) {
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.replace(R.id.fragment_container, newFragment, tag);
    ft.addToBackStack(null);
    ft.commit();
}

Teraz chcę uzyskać dostęp do widoków wewnątrz fragmentu, dzięki czemu mogę umieścić w nich dane (które zapisałem w mojej aktywności) natychmiast po wywołaniugoToFragment.

Problem polega na tym, że fragmentonCreateView nie jest wywoływany, zanim fragment zostanie całkowicie oddany, przynajmniej do mojego zrozumienia.

Wiem, że nadpisujęonAttach(Activity activity) we fragmencie jest jeden ze sposobów, aby to zrobić, ale potem muszę rzucić go konkretnie na moją działalność - i chcę po prostu tego uniknąć, ponieważ uważam za złą praktykę, że fragment jest zależny od określonej aktywności.

O ile widzę,Fragment nie ma żadnych słuchaczy (jako temat) zaimplementowanych.

Więc myślę, że muszę stworzyć własnego słuchacza (Korzystanie zWzór obserwatora aby uczynić fragment tematem i aktywnością obserwatora), a następnie nazwać go, gdyonCreateView lubonAttach jest zakończone, a następnie w końcu oddzwonimy do fragmentu z danymi, które należy ustawić. Muszę jednak zrobić to dla kilku fragmentów, więc musiałbym stworzyć słuchacza dla każdego fragmentu, który ponownie uważam za zły.

Czy istnieje lepszy / łatwiejszy sposób, aby to zrobić?

questionAnswers(3)

yourAnswerToTheQuestion