Jestem w trakcie tworzenia mojej pierwszej aplikacji na system Android i mam Fragment
, która zostanie dodana do mojej Activity
w metodzie Activity
's onCreate()
. Problem, z którym się borykam, polega na tym, że nie mogę znaleźć żadnego z poglądów zawartych w metodzie Fragment
z metody Activity
'onCreate()
.Widok fragmentu dostępu z działania jest włączony
Inne wątki sugerują, że dzieje się tak, ponieważ Fragment
nie został jeszcze zawyżony, więc findViewById()
zwróci wartość null dla wszystkich widoków zawartych w Fragment
.
Oto co mam na myśli:
aktywny:
@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);
}
ten drukuje wyniki:
aktywność onCreate koniec działalności onCreate fragment onCreateView
powodu tej kolejności, każda próba dostępu poglądy Fragment
Państwu Activity
„onCreate()
metody s (przy użyciu findViewById()
) wytwarza NullPointerException
, jak Fragment
” s onCreateView()
tylko jest wywoływana po zakończeniu tych Activity
„s onCreate()
.
Po dodaniu Fragment
po Fragment
nie pomaga.
Zasadniczo zostały zmuszone do wprowadzenia kodu problemem w Activity
„s onStart()
metody zamiast onCreate()
, jak onStart()
dzieje się po Fragment
” s onCreateView()
.
Czy ktoś, co standardową praktyką jest tutaj, lub w jaki sposób mogę zrobić mój kod dostępu do fragmentów pracy działa w ramach metody Activity
's onCreate()
?
Dlaczego chcesz uzyskać dostęp do widoków 'Fragment' w' Activity '' onCreate() 'metoda? Coś jest nie tak z twoim projektem. – biegleux
W szczególności, po dodaniu fragmentu w metodzie onCreate() działania, chcę zmienić tekst TextView zawartego w Fragmentie i dodać niektóre elementy do Spinnera. Co może być nie tak z moim projektem? – Dan
Niż zaktualizuj układ fragmentu w metodzie 'Fragment'' onCreateView() '. Zobacz moją odpowiedź. – biegleux