Ich habe ein seltsames Problem. Ich mache eine App mit targetdk 13.
In der onCreate-Methode meiner Hauptaktivität rufe ich auf, getActionBar()
um meine Aktionsleiste einzurichten. Dies funktioniert gut, wenn es auf dem Android 3.2-Emulator ausgeführt wird. Bei Verwendung von Android 3.0 und 3.1 gibt die getActionBar()
Methode jedoch null zurück.
Ich finde das extrem seltsam und kann keinen Grund erkennen, warum es so wäre. Ist dies ein Fehler mit den Emulatoren oder muss ich etwas tun, um sicherzustellen, dass meine Anwendung über eine Aktionsleiste verfügt?
LÖSUNG:
Ich glaube, ich habe eine Lösung für dieses Problem gefunden. Ich habe setContentView nicht verwendet, um ein Layout für die Aktivität festzulegen. Stattdessen habe ich fragmentTransaction.add(android.R.id.content, mFragment, mTag)
der Aktivität ein Fragment hinzugefügt. Dies hat in 3.2 gut funktioniert, aber in früheren Wabenversionen ist die Aktionsleiste anscheinend nicht festgelegt, wenn Sie setContentView nicht in der onCreate()
Methode verwenden. Also habe ich es behoben, indem ich die setContentView()
Methode in meiner onCreate()
Methode verwendet und sie nur mit einem Layout versehen habe, das ein leeres FrameLayout enthielt. Ich kann die fragmentTransaction.add(android.R.id.content, mFragment, mTag)
Methode immer noch genauso verwenden wie zuvor.
Es ist nicht die schönste Lösung, aber es funktioniert.