在没有获取 java.lang.IllegalStateException 的情况下使用 ActionBarActivity:您需要将 Theme.AppCompat 主题(或后代)与此 activity 一起使用
Using ActionBarActivity without getting java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity
我已经看到很多关于这个错误的问题,但似乎没有一个能解决我的问题。我正在尝试将这种服装风格用于 "style-v21"
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- inherit from the material theme -->
<style name="AppTheme" parent="">
<!-- Main theme colors -->
<!-- your app branding color for the app bar -->
<item name="android:colorPrimary">@android:color/holo_orange_dark</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:colorPrimaryDark">@android:color/holo_orange_dark</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="android:colorAccent">@android:color/holo_orange_dark</item>
<item name="android:navigationBarColor">@android:color/holo_orange_dark</item>
</style>
</resources>
当应用程序尝试运行时,我在 logcat 中收到此消息
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
正如其他类似问题的答案所述,您可以将使用此视图的 Activity 从 ActionBarActivity 切换为 Activity。这确实解决了错误,但我将如何使用 onOptionItemSelected 和其他允许您与操作栏交互的方法。
这是我最主要的`
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
`
有什么方法可以同时使用样式和 ActionBarActivity 而不会出现此错误。
I get this message in my logcat when the app tries to run
而不是 parent=""
,使用 parent="Theme.AppCompat"
(或 Theme.AppCompat
的其他 sub-theme,例如 Theme.AppCompat.Light
)。
您还需要修复您的主题以从项目中删除 android:
命名空间,因为 appcompat-v7
不使用 android:
命名空间(而本机操作栏使用) .
This does solves the error but how would I use onOptionItemSelected and other methods that allow you to interact with the action bar.
自 API 级别 11 以来,操作栏已成为标准 Android 的一部分。您无需使用 appcompat-v7
即可拥有操作栏并使用 onOptionsItemSelected()
和亲。
Also when I change the activity style to Theme.AppCompat It takes away my theme that I want to keep, so I would like to avoid using that.
我再说一遍:将 parent=""
更改为使用 Theme.AppCompat
作为 parent。
我已经看到很多关于这个错误的问题,但似乎没有一个能解决我的问题。我正在尝试将这种服装风格用于 "style-v21"
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- inherit from the material theme -->
<style name="AppTheme" parent="">
<!-- Main theme colors -->
<!-- your app branding color for the app bar -->
<item name="android:colorPrimary">@android:color/holo_orange_dark</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:colorPrimaryDark">@android:color/holo_orange_dark</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="android:colorAccent">@android:color/holo_orange_dark</item>
<item name="android:navigationBarColor">@android:color/holo_orange_dark</item>
</style>
</resources>
当应用程序尝试运行时,我在 logcat 中收到此消息
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
正如其他类似问题的答案所述,您可以将使用此视图的 Activity 从 ActionBarActivity 切换为 Activity。这确实解决了错误,但我将如何使用 onOptionItemSelected 和其他允许您与操作栏交互的方法。
这是我最主要的`
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
`
有什么方法可以同时使用样式和 ActionBarActivity 而不会出现此错误。
I get this message in my logcat when the app tries to run
而不是 parent=""
,使用 parent="Theme.AppCompat"
(或 Theme.AppCompat
的其他 sub-theme,例如 Theme.AppCompat.Light
)。
您还需要修复您的主题以从项目中删除 android:
命名空间,因为 appcompat-v7
不使用 android:
命名空间(而本机操作栏使用) .
This does solves the error but how would I use onOptionItemSelected and other methods that allow you to interact with the action bar.
自 API 级别 11 以来,操作栏已成为标准 Android 的一部分。您无需使用 appcompat-v7
即可拥有操作栏并使用 onOptionsItemSelected()
和亲。
Also when I change the activity style to Theme.AppCompat It takes away my theme that I want to keep, so I would like to avoid using that.
我再说一遍:将 parent=""
更改为使用 Theme.AppCompat
作为 parent。