在运行时更改android主题

在运行时更改android主题,android,android-studio,Android,Android Studio,我想在运行时更改Android主题,但我有问题: 我创造了一种新的风格 <style name="AppThemeRed" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimaryRed</item> <item name="colorPrimaryDark">@color/colorPrimary</

我想在运行时更改Android主题,但我有问题:

我创造了一种新的风格

<style name="AppThemeRed" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimaryRed</item>
    <item name="colorPrimaryDark">@color/colorPrimary</item>
    <item name="colorAccent">@color/colorAccentRed</item>
</style>
顺便说一下,我是新手,正在学习android开发,请用简单的话回答。

谢谢

您试图设置的主题有自己的
工具栏
。对于您来说,如果要获得此异常,则意味着您已经在布局中指定了
工具栏
视图,并且正在活动中的某个位置设置它。如果这样做,请确保扩展
.NoActionBar
主题之一,即

不过,您可能会面临一个新问题,因为AppCompat中没有“浅背景-暗无工具栏”主题,所以您必须自己设计工具栏的样式

您可以在此处看到如何在运行时切换主题的示例,以及在遇到更多问题时如何设置工具栏的样式:

在这里找到了解决方案,希望能有所帮助!不管怎样,随着主题的改变,你到底想改变什么颜色?
04-01 22:10:09.850 3631-3631/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.shahinsoft.snote, PID: 3631
    Theme: themes:{}
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.shahinsoft.snote/com.shahinsoft.snote.MainActivity}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5461)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
        at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117)
        Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
            at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:198)
            at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:99)
            at com.shahinsoft.snote.MainActivity.onCreate(MainActivity.java:33)
            at android.app.Activity.performCreate(Activity.java:6251)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510) 
            at android.app.ActivityThread.-wrap11(ActivityThread.java) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:148) 
            at android.app.ActivityThread.main(ActivityThread.java:5461) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
            at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117)