我遇到了一个奇怪的问题。 我在用 targetsdk 13做一个应用程序。
在我的主要活动的 onCreate 方法中,我调用 getActionBar()
来设置我的操作栏。在 Android 3.2模拟器上运行时,这种方法工作得很好,但是在使用 Android 3.0和3.1时,getActionBar()
方法返回 null。
我觉得这非常奇怪,我看不出有什么理由会这样做。 这是模拟器的一个 bug 还是我需要做些什么来确保我的应用程序有一个操作栏?
解决方案:
我想我找到了解决这个问题的办法。
我没有使用 setContentView 来设置活动的布局。相反,我使用 fragmentTransaction.add(android.R.id.content, mFragment, mTag)
向活动添加一个片段。
这在3.2中工作得很好,但是在早期的蜂窝版本中,如果您不在 onCreate()
方法中使用 setContentView,那么显然不会设置操作栏。
因此,我在 onCreate()
方法中使用 setContentView()
方法修复了这个问题,并为它提供了一个包含空 FrameLayout 的布局。
我仍然可以像以前一样使用 fragmentTransaction.add(android.R.id.content, mFragment, mTag)
方法。
虽然不是最好的解决办法,但是很有效。