私は奇妙な問題を抱えています。私はtargetsdk 13でアプリを作っています。
メイン アクティビティの onCreate メソッドgetActionBar()
で、アクションバーをセットアップするために呼び出します。これは、Android 3.2 エミュレーターで実行している場合は正常に機能しますが、Android 3.0 および 3.1 を使用している場合、getActionBar()
メソッドは null を返します。
私はこれが非常に奇妙だと思うし、そうする理由が見当たらない。これはエミュレーターのバグですか、それともアプリケーションにアクションバーがあることを確認するために何かする必要がありますか?
解決策:
この問題の解決策を見つけたと思います。アクティビティのレイアウトを設定するために setContentView を使用していませんでした。代わりにfragmentTransaction.add(android.R.id.content, mFragment, mTag)
、フラグメントをアクティビティに追加するために使用していました。これは 3.2 では正常に機能しましたが、以前のハニカム バージョンでは、メソッドで setContentView を使用しないとアクション バーが設定されないようですonCreate()
。setContentView()
そのため、メソッド内のメソッドを使用しonCreate()
、空の FrameLayout を含むレイアウトを提供するだけで修正しました。fragmentTransaction.add(android.R.id.content, mFragment, mTag)
以前と同じようにメソッドを使用できます。
それは最も美しい修正ではありませんが、機能します。