【发布时间】:2011-10-15 13:48:15
【问题描述】:
我遇到了一个奇怪的问题。 我正在使用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 中运行良好,但在早期的蜂窝版本中,如果您不在 onCreate() 方法中使用 setContentView,则显然未设置操作栏。
所以我通过在我的onCreate() 方法中使用setContentView() 方法来修复它,并且只为它提供一个包含空FrameLayout 的布局。
我仍然可以像以前一样使用fragmentTransaction.add(android.R.id.content, mFragment, mTag) 方法。
这不是最漂亮的修复,但它有效。
【问题讨论】:
-
正如您在回答另一篇文章时指出的那样,您需要一个 Holo 主题。不要假设您仅在 v13 res 文件夹中指定了全息主题?对不起,如果这听起来太明显了。
-
不,这也是我的第一个想法,但事实并非如此。不过感谢您的回复。
标签: android android-3.0-honeycomb android-actionbar