Mam dziwny problem. Tworzę aplikację z Targetsdk 13.
W metodzie onCreate mojego głównego działania wywołuję, getActionBar()
aby skonfigurować mój pasek akcji . Działa to dobrze, gdy działa na emulatorze systemu Android 3.2, ale podczas korzystania z systemu Android 3.0 i 3.1 getActionBar()
metoda zwraca wartość null.
Uważam to za wyjątkowo dziwne i nie widzę żadnego powodu, dla którego miałoby to zrobić. Czy jest to błąd w emulatorach, czy też muszę coś zrobić, aby upewnić się, że moja aplikacja ma pasek akcji?
ROZWIĄZANIE:
Myślę, że znalazłem rozwiązanie tego problemu. Nie używałem setContentView do ustawienia układu działania. Zamiast tego użyłem, fragmentTransaction.add(android.R.id.content, mFragment, mTag)
aby dodać fragment do ćwiczenia. To działało dobrze w 3.2, ale we wcześniejszych wersjach plastra miodu pasek akcji najwyraźniej nie jest ustawiony, jeśli nie używasz setContentView w onCreate()
metodzie. Więc naprawiłem to, używając setContentView()
metody w mojej onCreate()
metodzie i po prostu dostarczając jej układ zawierający pusty FrameLayout. Nadal mogę używać tej fragmentTransaction.add(android.R.id.content, mFragment, mTag)
metody w taki sam sposób jak poprzednio.
To nie jest najpiękniejsza poprawka, ale działa.