Java appcompat库v7的ActionBar(ava.lang.IllegalStateException:您需要使用Theme.appcompat主题)
我想用Android v7 appcompat库实现一个ActionBar,以支持Android>=2.1的ActionBar 我的应用程序以MainActivity开始,它包含一个黑色的操作栏、一些信息和一个开始按钮 下一个活动是MenuActivity,它还包含暗操作栏和一些可以滑动的操作栏选项卡Java appcompat库v7的ActionBar(ava.lang.IllegalStateException:您需要使用Theme.appcompat主题),java,android,android-actionbar,android-appcompat,Java,Android,Android Actionbar,Android Appcompat,我想用Android v7 appcompat库实现一个ActionBar,以支持Android>=2.1的ActionBar 我的应用程序以MainActivity开始,它包含一个黑色的操作栏、一些信息和一个开始按钮 下一个活动是MenuActivity,它还包含暗操作栏和一些可以滑动的操作栏选项卡 这是带有DarkActionBar主题的my manifest.xml: <application android:icon="@mipmap/ic_launcher" a
这是带有DarkActionBar主题的my manifest.xml:
<application
android:icon="@mipmap/ic_launcher"
android:label="Hello World"
android:theme="@android:style/Theme.Holo.Light.DarkActionBar">
<activity
android:name=".MainActivity"
android:label="Hello World">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".gui.MenuActivity"
android:label="Hello World" />
</application>
如果我启动应用程序,主活动将正常工作,但在单击开始按钮并加入菜单活动后,我会出现以下错误: java.lang.RuntimeException:无法启动活动 ComponentInfo{myapp.gui.MenuActivity}: java.lang.IllegalStateException:您需要使用Theme.AppCompat 此活动的主题(或后代) 我找到了一些解决办法,但没有适合我的问题。有人能帮我吗 我也想知道我的解决方案是最新的还是过时的
谢谢:)用
@style/Theme.AppCompat.Light.DarkActionBar替换android manifest.xml中的@android:style/Theme.Holo.Light.DarkActionBar
确保build.gradle中有以下依赖项:compile'com.android.support:appcompat-v7:22.1.1'
编辑:检查Knossos的第一条评论 如果要在main活动中扩展ActionBarActivity
,则还必须更改values-v11
中的父主题。
因此values-v11
中的style.xml
将-
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="QueryTheme" parent="@style/Theme.AppCompat">
<!-- Any customizations for your app running on devices with Theme.Holo here -->
</style>
</resources>
并确保将android manifest.xml
中的@android:style/Theme.Holo.Light.darkaActionBar
替换为style/Theme.AppCompat.Light.darkaActionBar
此外,如果您在主题中也需要自己的样式,您可以将主题的父级设置为@style/Theme.AppCompat.Light.darkaActionBar如果我这样做,MainActivity的操作栏消失,3点菜单的下拉菜单出现在操作栏中,而不是中间it@Stampy然后将ActionBarActivity
替换为AppCompatActivity
。这解决了我在MainActivity中遇到的第一个问题,谢谢。但是actionbar的下拉菜单仍然显示在actionbar中,而不是在下面it@Karim问题:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="QueryTheme" parent="@style/Theme.AppCompat">
<!-- Any customizations for your app running on devices with Theme.Holo here -->
</style>
</resources>