Android Java 切换颜色

Android Java on toggle change color

如何更改我的 styles.xml 中的 color/s,它看起来像这样

<?xml version="1.0" encoding="utf-8"?>

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">#FF9800</item>
    <item name="colorButtonNormal">#FF9800</item>
    <item name="android:colorPrimaryDark">#FF9800</item>
    <item name="android:navigationBarColor">#FF9800</item>
</style>

当我在 activity_main.xml 中切换 ToggleButton 时,看起来像这样

    <ToggleButton
    android:id="@+id/togglebutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textOn="Light Theme"
    android:textOff="Dark Theme"
    android:onClick="onToggleClicked"
    android:layout_above="@+id/button"
    android:layout_centerHorizontal="true" />

到目前为止,我这样做是为了让我的 MainActivity.java

发生这种行为
    public void onToggleClicked(View view) {
    // check if toggle active
    boolean on = ((ToggleButton) view).isChecked();

    if (on) {

    } else {

    }
}

原因是我想为我的应用制作深色和浅色主题:)

不幸的是,主题是不可变的,这意味着您无法在运行时以编程方式更改它们。

也不能简单地设置一个样式。但是,您可以通过扩充新视图来更改样式。您可能会发现 this thread 很有用。

您不能动态更改appTheme。但是有一个解决方法。

看看这个 link。

Android - Change app Theme on onClick