在 Android Activity 中应用自定义主题

Apply custom theme in Android Activity

我想在 android 操作栏标题中应用自定义主题,但是当我尝试这样做时出现错误。

我的清单:

 <activity
     android:name="com.lifegoal.eshop.Recharge_Activity"
       android:theme="@style/MyTheme"
        android:label="Mobile Recharge" >

我的价值观 v11 文本

<!--
    Base application theme for API 11+. This theme completely replaces
    AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
    <!-- API 11 theme customizations can go here. -->
</style>



 <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:titleTextStyle">@style/TitleBarTextColor</item>
    <item name="android:background">@color/color_blue</item>
</style>

我的Logcat输出

05-07 17:56:40.655: E/AndroidRuntime(1647): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.lifegoal/com.lifegoal.eshop.Recharge_Activity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
05-07 17:56:40.655: E/AndroidRuntime(1647):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)

如果有人知道,请帮助我...

<style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/color_white</item>
</style>


</resources>

由于您可能将 AppBaseTheme 用作您的应用程序主题,因此您还需要一个 AppCompat 主题来覆盖活动: 您的 MyTheme 需要有父主题 Theme.AppCompatTheme.AppCompat.Light,而不是当前的 Holo 主题。

按照以下link设计自定义主题
http://jgilfelt.github.io/android-actionbarstylegenerator/

下载主题后,您只需将文件粘贴到所需的文件夹中,然后在里面 AndroidManifesh.xml 您需要写下您的自定义主题名称。

<application

        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/custom_theme_name" >
        <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>